издание на разпределена СУБД , разработвана под впечатление от технологиите на Google и . TiDB принадлежи към категорията на хибридните системи HTAP (Хибридна Транзакционна/Аналитична Обработка), способни както да осигуряват изпълнение на транзакции в реално време (OLTP), така и да извършват обработка на аналитични запитвания. Проектът е написан на езика Go и се разпространява под лицензия Apache 2.0.
Характеристики на TiDB:
- Поддържа SQL и предлага клиентски интерфейс, съвместим с протокола на MySQL, което улеснява адаптацията на съществуващи приложения за TiDB, написани за MySQL, и позволява използването на разпространените клиентски библиотеки. Освен протокола 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, който значително повишава скоростта на събиране на боклук в големи клъстери и подобрява стабилността на работата;
- Добавена е поддръжка за големи транзакции, размерът на които е практически ограничен от физическата памет. Ограничението за размера на една транзакция е увеличено от 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
