TiDB 3.0 distribuita DBMS-eldono

Disponebla liberigo de distribuita DBMS TiDB 3.0, evoluigita sub la influo de Guglo-teknologioj Skanilo и F1. TiDB apartenas al la kategorio de hibridaj HTAP (Hibrida Transakcia/Analitika Pretigo) sistemoj, kapablaj kaj provizi realtempajn transakciojn (OLTP) kaj prilabori analizajn demandojn. La projekto estas skribita en lingvo Go kaj distribuita de licencita sub Apache 2.0.

Karakterizaĵoj de TiDB:

  • SQL-subteno kaj disponigo de klientinterfaco kongrua kun la MySQL-protokolo, kiu simpligas la adaptadon de ekzistantaj aplikoj skribitaj por MySQL al TiDB, kaj ankaŭ permesas la uzon de oftaj klientbibliotekoj. Krom la MySQL-protokolo, vi povas uzi JSON-bazitan API kaj konektilon por Spark por aliri la DBMS.
  • SQL prezentas subtenajn indeksojn, aldonitajn funkciojn, GROUP BY, ORDER BY, DISTINCT-esprimoj, kunfandoj (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vidoj, fenestrofunkcioj kaj subdemandoj. La provizitaj kapabloj sufiĉas por organizi laboron kun TiDB por tiaj retejoj kiel PhpMyAdmin, okulvitroj kaj WordPress;
  • Horizontala skaleblo kaj faŭltoleremo: stoka grandeco kaj pretigpotenco povas esti pliigitaj per simple konekto de novaj nodoj. Datenoj estas distribuitaj trans nodoj kun redundo, permesante al operacio daŭri se individuaj nodoj malsukcesas. Fiaskoj estas traktataj aŭtomate.
  • La sistemo garantias konsistencon kaj por la klienta programaro ĝi aspektas kiel unu granda DBMS, malgraŭ tio, ke fakte, datumoj de multaj nodoj estas altiritaj por kompletigi la transakcion.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • La kapablo nesinkrone ŝanĝi la stokadskemon, permesante al vi aldoni kolumnojn kaj indeksojn sur la flugo sen ĉesigi la prilaboradon de daŭrantaj operacioj.

Ĉefa novigoj:

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

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

    TiDB 3.0 distribuita DBMS-eldono

  • Реализован распределённый сборщик мусора, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
  • Добавлена экспериментальная реализация системы разграничения доступа на основе ролей (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.

fonto: opennet.ru

Aldoni komenton