TiDB 3.0 бөлүштүрүлгөн DBMS чыгаруу

Жеткиликтүү бөлүштүрүлгөн DBMS чыгаруу TiDB 3.0, Google технологияларынын таасири астында иштелип чыккан Гайка ачкычы и F1. TiDB реалдуу убакыт транзакцияларын (OLTP) камсыз кылууга жана аналитикалык суроо-талаптарды иштетүүгө жөндөмдүү гибриддик HTAP (Hybrid Transactional/Analytical Processing) системаларынын категориясына кирет. Долбоор Go тилинде жазылган жана жайылуу Apache 2.0 астында лицензияланган.

TiDB өзгөчөлүктөрү:

  • SQL колдоосу жана MySQL протоколуна шайкеш келген кардар интерфейсин камсыз кылуу, ал MySQL үчүн жазылган бар тиркемелерди TiDBге адаптациялоону жөнөкөйлөтөт, ошондой эле жалпы кардар китепканаларын колдонууга мүмкүндүк берет. MySQL протоколунан тышкары, сиз DBMSке кирүү үчүн JSON негизиндеги API жана Spark үчүн туташтыргычты колдоно аласыз.
  • SQL функциялары индекстерди, агрегаттык функцияларды, ГРУППАЦИЯ БОЮНЧА, ТАРТИП БОЙУНДА, ДИСТИНКТ туюнтмаларын, бириктирүүнү (СОЛ ЖАКШЫ / ОҢ ЖАКШЫ ЖОГОРУ / CROSS JOIN), көрүнүштөрдү, терезе функцияларын жана подсуроолорду колдойт. Берилген мүмкүнчүлүктөр PhpMyAdmin сыяктуу веб-тиркемелер үчүн TiDB менен иштөөнү уюштуруу үчүн жетиштүү, көз айнек жана WordPress;
  • Горизонталдык масштабдуулук жана каталарга чыдамдуулук: жаңы түйүндөрдү туташтыруу менен сактоо көлөмүн жана иштетүү күчүн көбөйтүүгө болот. Маалыматтар ашыкча түйүндөр боюнча бөлүштүрүлөт, бул жеке түйүндөр иштебей калса, операцияны улантууга мүмкүндүк берет. Мүчүлүштүктөр автоматтык түрдө чечилет.
  • Система ырааттуулукту кепилдейт жана кардар үчүн программалык камсыздоо үчүн ал бир чоң СБМ сыяктуу көрүнөт, бирок транзакцияны аягына чыгаруу үчүн көптөгөн түйүндөрдөн маалыматтар тартылат.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • Сактоо схемасын асинхрондук түрдө өзгөртүү мүмкүнчүлүгү, сиз жүрүп жаткан операцияларды иштетүүнү токтотпостон, мамычаларды жана индекстерди тез арада кошууга мүмкүндүк берет.

негизги инновациялар:

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

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

    TiDB 3.0 бөлүштүрүлгөн DBMS чыгаруу

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

Комментарий кошуу