Te tukunga o te DBMS TiDB 3.0 kua tohatohahia

Wātea te tukunga o te DBMS toha TiDB 3.0, i whakawhanakehia i raro i te mana o nga hangarau a Google Whero и F1. No roto a TiDB i te waahanga o nga punaha HTAP (Hybrid Transactional/Analytical Processing) ranu, e kaha ana ki te whakarato i nga tauwhitinga tuuturu (OLTP) me te tukatuka i nga patai tātari. Kua tuhia te kaupapa ki te reo Haere me te tohaina e kua raihanatia i raro i te Apache 2.0.

Nga waahanga o TiDB:

  • Tautoko SQL me te whakarato i tetahi atanga kiritaki e hototahi ana ki te kawa MySQL, e whakamaarama ana i te urutaunga o nga tono o naianei kua tuhia mo MySQL ki TiDB, ka taea hoki te whakamahi i nga whare pukapuka kiritaki noa. I tua atu i te kawa MySQL, ka taea e koe te whakamahi i te API-a-JSON me te hono mo Spark kia uru atu ki te DBMS.
  • Ko nga ahuatanga SQL e tautoko ana i nga taupū, nga mahi whakahiato, GROUP BY, ORDER BY, DISTINCT expressions, hanumi (MAUUI / RIGHT JOIN / CROSS JOIN), tirohanga, mahi matapihi me nga patai. Ko nga kaha e whakaratohia ana he rawaka ki te whakarite mahi me TiDB mo nga tono paetukutuku penei i te PhpMyAdmin, Koura me te WordPress;
  • Ko te whakahiatotanga whakapae me te whakararu i te he: ka taea te whakanui i te rahi o te rokiroki me te mana tukatuka ma te hono noa i nga pona hou. Ka tohatohahia nga raraunga puta noa i nga pona me te taapiri, ka taea te mahi ki te haere tonu mena ka rahua nga waahanga takitahi. Ka whakahaere aunoatia nga hapa.
  • Ka whakamanahia e te punaha te rite, mo te rorohiko a te kiritaki he rite te ahua o te DBMS nui, ahakoa te meka, ko nga raraunga mai i te maha o nga pona ka aro ki te whakaoti i te tauwhitinga.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственный движок распределённого хранилища TiKV.
  • Ko te kaha ki te whakarereke i te kaupapa rokiroki, ka taea e koe te taapiri i nga pou me nga tohu tohu i runga i te rere me te kore e mutu te tukatuka o nga mahi haere tonu.

Main nga mahi auaha:

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

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

    Te tukunga o te DBMS TiDB 3.0 kua tohatohahia

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

Tāpiri i te kōrero