Versiunea DBMS distribuită TiDB 3.0

Disponibil lansarea unui SGBD distribuit TiDB 3.0, dezvoltat sub influența tehnologiilor Google cheie de piulițe и F1. TiDB aparține categoriei sistemelor hibride HTAP (Hybrid Transactional/Analytical Processing), capabile atât să furnizeze tranzacții în timp real (OLTP), cât și să proceseze interogări analitice. Proiectul este scris în limba Go și distribuit de licențiat sub Apache 2.0.

Caracteristicile TiDB:

  • Suport SQL și furnizarea unei interfețe client compatibile cu protocolul MySQL, care simplifică adaptarea aplicațiilor existente scrise pentru MySQL la TiDB și permite, de asemenea, utilizarea bibliotecilor client obișnuite. În plus față de protocolul MySQL, puteți utiliza un API bazat pe JSON și un conector pentru Spark pentru a accesa DBMS.
  • Caracteristicile SQL acceptă indici, funcții de agregare, GROUP BY, ORDER BY, expresii DISTINCT, îmbinări (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vizualizări, funcții de fereastră și subinterogări. Capacitățile oferite sunt suficiente pentru a organiza lucrul cu TiDB pentru aplicații web precum PhpMyAdmin, ochelari de protecţie și WordPress;
  • Scalabilitate orizontală și toleranță la erori: dimensiunea de stocare și puterea de procesare pot fi mărite prin simpla conectare a nodurilor noi. Datele sunt distribuite între noduri cu redundanță, permițând operațiunii să continue dacă nodurile individuale eșuează. Eșecurile sunt tratate automat.
  • Sistemul garantează consistență și pentru software-ul client arată ca un singur SGBD mare, în ciuda faptului că, de fapt, datele de la multe noduri sunt atrase pentru a finaliza tranzacția.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • Capacitatea de a schimba în mod asincron schema de stocare, permițându-vă să adăugați coloane și indici din mers fără a opri procesarea operațiunilor în curs.

Principalul inovații:

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

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

    Versiunea DBMS distribuită 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.

Sursa: opennet.ru

Adauga un comentariu