Випуск розподіленої СУБД TiDB 4.0

доступний реліз розподіленої СУБД TiDB 4.0, що розвивається під враженням від технологій Google Шпильку и F1. TiDB відноситься до категорії гібридних систем HTAP (Hybrid Transactional/Analytical Processing), здатних як забезпечувати виконання транзакцій в реальному часі (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 таких web-додатків, як PhpMyAdmin, Gogs та WordPress;
  • Можливість горизонтального масштабування та забезпечення відмовостійкості: розмір сховища та обчислювальну потужність можна нарощувати простим підключенням нових вузлів. Дані розподіляються на вузлах з надмірністю, що дозволяє продовжити роботу у разі збою окремих вузлів. Збої обробляються автоматично.
  • Система гарантує несуперечність і для клієнтського ПЗ виглядає як одна велика СУБД, незважаючи на те, що фактично для виконання транзакції залучаються дані з багатьох вузлів.
  • Для физического хранения данных на узлах могут применяться разные бэкенды, например, локальные движки хранения GoLevelDB и BoltDB или собственные движки распределённого хранилища TiKV и TiFlash. TiKV хранит данные в разрезе строк в формате ключ/значение и является более оптимальным для задач обработки транзакций (OLTP). TiFlash хранит данные в привязке к столбцам и позволяет добиться более высокой производительности при решении аналитических задач (OLAP).
  • Можливість асинхронної зміни схеми зберігання, що дозволяє на льоту додавати стовпці та індекси без зупинки обробки поточних операцій.

У новому випуску:

  • По умолчанию включён распределённый сборщик мусора Green GC, позволяющий существенно повысить скорость сборки мусора в крупных кластерах и повысить стабильность работы;
  • Добавлена поддержка больших транзакций, размер которых ограничены практически размером физической памяти. Ограничение размера одной транзакции увеличено со 100 МБ до 10ГБ;
  • Добавлена поддержка команд 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

Додати коментар або відгук