מעלדונג פון די פונאנדערגעטיילט DBMS TiDB 3.0

בנימצא מעלדונג פון אַ פונאנדערגעטיילט DBMS TiDB 3.0, דעוועלאָפּעד אונטער דער השפּעה פון Google טעקנאַלאַדזשיז Spanner и F1. TiDB געהערט צו דער קאַטעגאָריע פון ​​כייבריד HTAP (Hybrid Transactional / Analytical Processing) סיסטעמען, וואָס איז ביכולת צו צושטעלן פאַקטיש-צייט טראַנזאַקשאַנז (OLTP) און פּראַסעסינג אַנאַליסיס. די פּרויעקט איז געשריבן אין Go and פונאנדערגעטיילט דורך לייסאַנסט אונטער אַפּאַטשי 2.0.

פֿעיִקייטן פון TiDB:

  • SQL שטיצן און טנייַ פון אַ קליענט צובינד קאַמפּאַטאַבאַל מיט די MySQL פּראָטאָקאָל, וואָס סימפּלאַפייז די אַדאַפּטיישאַן פון יגזיסטינג אַפּלאַקיישאַנז געשריבן פֿאַר MySQL צו TiDB, און אויך אַלאַוז די נוצן פון פּראָסט קליענט לייברעריז. אין אַדישאַן צו די MySQL פּראָטאָקאָל, איר קענען נוצן אַ JSON-באזירט אַפּי און אַ קאַנעקטער פֿאַר ספּאַרק צו אַקסעס די DBMS.
  • SQL פֿעיִקייטן שטיצן ינדעקסיז, געמיינזאַם פאַנגקשאַנז, GROUP BY, ORDER BY, DISTINCT אויסדרוקן, מערדזשיז (לינקס פאַרבינדן / רעכט פאַרבינדן / קרייַז פאַרבינדן), קוקן, פֿענצטער פאַנגקשאַנז און סאַבקוועריז. די צוגעשטעלט קייפּאַבילאַטיז זענען גענוג צו אָרגאַניזירן אַרבעט מיט TiDB פֿאַר אַזאַ וועב אַפּלאַקיישאַנז ווי PhpMyAdmin, גאָגס און וואָרדפּרעסס;
  • האָריזאָנטאַל סקאַלאַביליטי און שולד טאָלעראַנץ: סטאָרידזש גרייס און פּראַסעסינג מאַכט קענען זיין געוואקסן דורך פשוט קאַנעקטינג נייַ נאָודז. דאַטן זענען פונאנדערגעטיילט אַריבער נאָודז מיט יבעריקייַט, אַלאַוינג אָפּעראַציע צו פאָרזעצן אויב יחיד נאָודז פאַרלאָזן. פייליערז זענען כאַנדאַלד אויטאָמאַטיש.
  • דער סיסטעם געראַנטיז קאָנסיסטענסי און פֿאַר די קליענט ווייכווארג עס קוקט ווי איין גרויס DBMS, טראָץ דער פאַקט אַז אין פאַקט, דאַטן פון פילע נאָודז זענען געצויגן צו פאַרענדיקן די טראַנסאַקטיאָן.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • די פיייקייט צו ייסינגקראַנאַסלי טוישן די סטאָרידזש סטשעמאַ, אַלאַוינג איר צו לייגן שפאלטן און ינדעקסיז אויף די פליען אָן סטאָפּפּינג די פּראַסעסינג פון אָנגאָינג אַפּעריישאַנז.

הויפּט ינאָווויישאַנז:

  • Проведена работа по увеличению производительности. В тесте Sysbench выпуск 3.0 опережает ветку 2.1 в 1.5 раза при выполнении операций select и update, а в тесте TPC-C в 4.5 раза. Оптимизации затронули различные виды запросов, включая подзапросы «IN», «DO» и «NOT EXISTS», операции слияния таблиц (JOIN), использование индексов и многое другое;
    מעלדונג פון די פונאנדערגעטיילט DBMS TiDB 3.0מעלדונג פון די פונאנדערגעטיילט DBMS TiDB 3.0

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

    מעלדונג פון די פונאנדערגעטיילט 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.

מקור: opennet.ru

לייגן אַ באַמערקונג