Verëffentlechung vum verdeelt DBMS TiDB 3.0

Verfügbar Verëffentlechung vun engem verdeelt DBMS TiDB 3.0, entwéckelt ënner dem Afloss vu Google Technologien Spanner и F1. TiDB gehéiert zu der Kategorie vun Hybrid HTAP (Hybrid Transactional / Analytical Processing) Systemer, fäeg souwuel Echtzäit Transaktiounen (OLTP) ze liwweren an analytesch Ufroen ze veraarbecht. De Projet ass a Go Sprooch geschriwwen an verdeelt duerch lizenzéiert ënner Apache 2.0.

Features vun TiDB:

  • SQL Ënnerstëtzung an Dispositioun vun engem Client Interface kompatibel mam MySQL Protokoll, déi d'Adaptatioun vun bestehend Uwendungen schrëftlech fir MySQL zu TiDB vereinfacht, an erlaabt och d'Benotzung vun gemeinsam Client Bibliothéiken. Zousätzlech zum MySQL Protokoll kënnt Dir e JSON-baséiert API an e Connector fir Spark benotzen fir op d'DBMS ze kommen.
  • SQL Fonctiounen ënnerstëtzen Indexen, aggregéiert Funktiounen, GROUP BY, ORDER BY, DISTINCT Ausdréck, Fusioun (LEFT JOIN / RIGHT JOIN / CROSS JOIN), Meenungen, Fënsterfunktiounen an Ënnerufroen. Déi geliwwert Fäegkeeten si genuch fir d'Aarbecht mat TiDB fir sou Webapplikatiounen wéi PhpMyAdmin ze organiséieren, brillen a WordPress;
  • Horizontal Skalierbarkeet a Feelertoleranz: Späichergréisst a Veraarbechtungskraaft kënne erhéicht ginn andeems se einfach nei Wirbelen verbannen. D'Donnéeë ginn iwwer Node mat Redundanz verdeelt, wat d'Operatioun erlaabt weiderzeféieren wann eenzel Noden versoen. Feeler ginn automatesch gehandhabt.
  • De System garantéiert Konsistenz a fir d'Client Software gesäit et aus wéi eng grouss DBMS, trotz der Tatsaach, datt tatsächlech Daten aus ville Wirbelen ugezunn sinn fir d'Transaktioun ofzeschléissen.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • D'Kapazitéit fir de Späicherschema asynchron z'änneren, wat Iech erlaabt Spalten an Indexen op der Flucht ze addéieren ouni d'Veraarbechtung vun de lafenden Operatiounen ze stoppen.

Haaptstrooss Innovatiounen:

  • Проведена работа по увеличению производительности. В тесте Sysbench выпуск 3.0 опережает ветку 2.1 в 1.5 раза при выполнении операций select и update, а в тесте TPC-C в 4.5 раза. Оптимизации затронули различные виды запросов, включая подзапросы «IN», «DO» и «NOT EXISTS», операции слияния таблиц (JOIN), использование индексов и многое другое;
    Verëffentlechung vum verdeelt DBMS TiDB 3.0Verëffentlechung vum verdeelt DBMS TiDB 3.0

  • Добавлен новый движок хранения TiFlash, позволяющий добиться более высокой производительности при решении аналитических задач (OLAP), благодаря хранению в привязке к столбцам. TiFlash дополняет собой ранее предлагаемое хранилище TiKV, хранящее данные в разрезе строк в формате ключ/значение и более опримальное для задач обработки транзакций (OLTP). TiFlash работает бок о бок с TiKV и данные продолжают как и раньше реплицироваться в TiKV с использоанием протокола Raft для определении консенсуса, но для каждой группы реплик Raft создаётся дополнительная реплика, которая используется в TiFlash. Подобный поход позволяет добиться лучшего разделения ресурсов между задачами OLTP и OLAP, а также делает данные транзакций мгновенно доступными для аналитических запросов;

    Verëffentlechung vum verdeelt DBMS TiDB 3.0

  • Реализован распределённый сборщик мусора, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
  • Добавлена экспериментальная реализация системы разграничения доступа на основе ролей (RBAC). Также обеспечена возможность задания прав доступа для операций ANALYZE, USE, SET GLOBAL и SHOW PROCESSLIST;
  • Добавлена возможность использования выражений SQL для выблрки из лога медленных запросов;
  • Реализован механизм быстрого восстановления удалённых таблиц, позволяющий восстановить случайно удалённые данные;
  • Унифицирован формат записываемых логов;
  • Добавлена поддержка пессимистического режима блокировки, который делает обработку транзакций более близкой к MySQL;
  • Добавлена поддержка оконных функций (window-функции или аналитические функции), совместимых с MySQL 8.0. Оконные функции позволяют для каждой строки запроса выполнить вычисления, используя другие строки. В отличие от агрегатных функций, которые свёртывают сгруппированный набор строк в одну строку, оконные функции производят агрегирование на основе содержимого «окна», включающего одну или более строк из результирующего набора. Среди реализованных оконных функций:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK и ROW_NUMBER;

  • Добавлена экспериментальная поддержка представлений (VIEW);
  • Улучшена система секционирования (партицирования), добавлена возможность распределения данным по секциям на основании диапазона значений или хэшей;
  • Добавлен фреймворк для разработки плагинов, например, уже подготовлены плагины для использования белого списка IP или ведения лога аудита;
  • Обеспечена экспериментальная поддержка функции «EXPLAIN ANALYZE» для построения плана выполнения SQL-запроса (SQL Plan Management);
  • Добавлена команда next_row_id для получения идентификатора следующей строки;
  • Добавлены новые встроенные функции JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE и NAME_CONST.

Source: opennet.ru

Setzt e Commentaire