релиз на разпределена СУБД , вдъхновена от технологиите на Google и . TiDB принадлежи към категорията на хибридни HTAP системи (Хибридна транзакционна/аналитична обработка), които могат да извършват както транзакции в реално време (OLTP), така и да обработват аналитични запитвания. Проектът е написан на езика Go и е под лицензия Apache 2.0.
Характеристики на TiDB:
- Поддържа SQL и предоставя клиентски интерфейс, съвместим с протокола MySQL, което улеснява адаптацията на съществуващи приложения, написани за MySQL, към TiDB, а също така позволява използването на разпространени клиентски библиотеки. Освен протокола MySQL, за достъп до СУБД може да се използва API на базата на JSON и конектор за Spark.
- От възможностите на SQL се поддържат индекси, агрегатни функции, изрази GROUP BY, ORDER BY, DISTINCT, обединения (LEFT JOIN / RIGHT JOIN / CROSS JOIN), изгледи, прозоречни функции и подзапитвания. Предоставените възможности са достатъчни за работа с TiDB в уеб приложения като PhpMyAdmin, и WordPress;
- Възможност за хоризонтално мащабиране и осигуряване на отказоустойчивост: размерът на хранилището и изчислителната мощност могат да се увеличават просто чрез добавяне на нови възли. Данните се разпределят между възлите с излишък, позволяващ продължаване на работата в случай на отказ на отделни възли. Отказите се обработват автоматично.
- Системата гарантира последователност и за клиентския софтуер изглежда като една голяма СУБД, въпреки че за извършването на транзакция се извличат данни от множество възли.
- За физическото съхранение на данни на възлите могат да се прилагат различни бекенди, например локалните хранилища GoLevelDB и BoltDB или собствените разпределени хранилища и TiFlash. TiKV съхранява данните под формата на двойки ключ/стойност и е по-оптимален за транзакционната обработка (OLTP). TiFlash съхранява данните в колони и позволява постигане на по-висока производителност при решаване на аналитични задачи (OLAP).
- Възможност за асинхронна промяна на схемата на съхранение, позволяваща добавяне на колони и индекси в реално време без прекъсване на текущите операции.
В новото издание:
- По подразбиране е активирано разпределеното събиране на боклук Green GC, което позволява значително повишаване на скоростта на събиране на боклук в големи клъстери и повишаване на стабилността на работата.
- Добавена е поддръжка за големи транзакции, чийто размер е практически ограничен до размерa на физическата памет. Ограничението за размер на една транзакция е увеличено от 100 MB до 10 GB.
- Добавена е поддръжка на командите BACKUP и RESTORE за резервно копиране.
- Добавена е възможност за поставяне на блокировки на таблици.
- Добавен е съвместим с MySQL механизъм за изолация на транзакции на ниво четене (READ COMMITTED).
- В командата „ADMIN SHOW DDL JOBS“ е добавена поддръжка за изрази LIKE и WHERE.
- Добавен е параметърът oom-use-tmp-storage, който позволява използването на временни файлове за кеширане на междинни резултати при недостатъчна оперативна памет.
- Добавено е ключовото слово Random за присвояване на атрибути случайни стойности.
- В командата LOAD DATA е добавена възможност за използване на шестнадесетични и двоични изрази.
- Добавени са 15 параметъра за управление на поведението на оптимизатора.
- Добавени са средства за диагностика на производителността на SQL заявките. Добавен е лог на бавните заявки, достъпен през системните таблици SLOW_QUERY / CLUSTER_SLOW_QUERY.
- Добавена е поддръжка на функции за работа с последователности.
- Добавена е възможност за динамично изменение на параметри на конфигурация, прочетени от PD (Placement Driver, сървър за управление на клъстера). Добавена е възможност за използване на израза „SET CONFIG“ за промяна на настройките на възлите PD/TiKV.
- Добавена е настройка max-server-connections за ограничаване на максималния брой едновременни свързвания към сървъра (по подразбиране 4096).
- Повишена е производителността в ситуации, в които заявените колони са напълно покрити от индекси.
- Добавена е оптимизация на заявките на базата на сливане на индекси.
- Повишена е производителността на операциите с диапазони от стойности.
- Намалена е натовареността на CPU чрез кеширане на резултатите от достъпа до индекси и филтриране на дубликати.
- Добавена е поддръжка на нов формат за съхранение на редове, който позволява увеличаване на производителността на таблици с голям брой колони.
- В функцията GROUP_CONCAT е добавена поддръжка на израза „ORDER BY“.
- Добавена е възможност за извличане на данни от лог файла TiFlash чрез SQL.
- В екипа „RECOVER TABLE“ е реализирана поддръжка за възстановяване на отстранени таблици;
- Добавена е системна таблица DDLJobs за запитване на детайли относно изпълнението на DDL задачи;
- Добавена е възможност за прилагане на командата SHOW CONFIG за показване на настройки на PD и TiKV;
- по подразбиране кеш на съпроводителя;
- Броят на съпараграфите (goroutine) в етапа на повторни опити за ангажиране вече може да се контролира чрез настройка committer-concurrency;
- Добавена е възможност за показване на регионите на разделите на таблиците (table partition);
- В tidb-server е добавена възможност за ограничаване на размера на временното хранилище;
- Добавена е поддръжка за операции „insert into tbl_name partition(partition_name_list)“ и „replace into tbl_name partition(partition_name_list)“;
- В използвания за партициониране хеш е добавена поддръжка за филтриране по признака „is null“;
- За партиционираните таблици е добавена поддръжка за операции по проверка, почистване и възстановяване на индекси.
Източник: opennet.ru
