Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Tarantool 3.6

Дата выпуска: 2025-12-12

Релизы на GitHub: 3.6.0

В версии Tarantool 3.6 добавлены следующие важные возможности и улучшения для редакций Community и Enterprise:

  • Community Edition (CE)
    • Memtx: значительный прирост скорости восстановления из снимка.
    • Новые виды пользовательских прав: grant и metagrant.
  • Enterprise Edition (EE)
    • Координатор обработки сбоев: поддержка синхронной репликации в топологиях с 2 ЦОД.
    • MemCS: многочисленные улучшения.

[CE] Memtx: значительно более быстрое восстановление из снимка

Прирост скорости восстановления из снимка в данном релизе может составлять до 70% за счет переноса декодирования MsgPack-данных в отдельный поток.

Триггеры для спейсов и транзакций (space.on_replace, space.before_replace) на время восстановления признаны устаревшими.

[CE] Новые виды привилегий: grant и metagrant

Новые виды пользовательских прав – grant и metagrant – позволяют создавать пользователей с полным набором возможностей, как у встроенного пользователя admin. grant позволяет предоставлять любые права за исключением grant и metagrant конкретным объектам или классам объектов, либо глобально (universe). metagrant позволяетс предоставлять права grant и metagrant.

И grant, и metagrant можно предоставлять только глобально (universe). Их можно предоставлять любым пользователям, кроме текущего.

[EE] Координатор обработки сбоев: синхронная репликация для топологии с 2 ЦОД

В предыдущих релизах координатор обработки сбоев обеспечивал режим синхронной репликации в случаях работы с 3 и более ЦОД.

При наличии N экземпляров в наборе реплик, минимальный размер кворума составляет N/2 + 1. Прежде работа с 2 ЦОД не поддерживалась, поскольку размер кворума нельзя было динамически уменьшить в случае потери соединения со вторым ЦОД. Например, в минимальном наборе реплик, состоящем из 2 экземпляров, размер кворума по умолчанию равняется 2 (рассчитывается как 2/2 + 1 = 2). Если один из экземпляров становится недоступен, то совершать транзакции становится невозможно, потому как нельзя получить подтверждение от второго экземпляра в наборе реплик. Таким образом, новые транзакции теряются.

Теперь в режиме контролируемого переключения (supervised failover) Tarantool поддерживает синхронную репликацию в топологии с 2 ЦОД. При обнаружении недоступности второго ЦОД, координатор автоматически уменьшает размер кворума и восстанавливает работоспособность кластера, а затем автоматически возвращает штатное значение кворума при восстановлении второго ЦОД. Таким образом, потери транзакций не происходит.

При этом нужно учитывать следующие ограничения. Хранилища данных могут быть развернуты всего в двух ЦОД, но для корректной работы кластера требуется еще один – так называемый "кворумный ЦОД" – для дополнительного хранилища конфигурации (на базе etcd или Tarantool). Фактически мы получаем так называемую "топологию с 2,5 ЦОД", которая подразумевает в общей сложности 3 ЦОД: два ЦОД с полным набором компонентов (хранилища данных, маршрутизаторы, хранилища конфигурации) + один ЦОД с хранилищем конфигурации.

Также рассмотрим ситуации, когда топология с хранилищами данных, развернутыми в 2 ЦОД, может выйти из строя.

Ситуация #1: обогащение данных после падения одного из ЦОД было прервано a. ЦОД #1 выходит из строя, а ЦОД #2 остается работать. Координатор отработки сбоев уменьшает размер кворума до 1. Кластер продолжает обслуживать клиентов. b. ЦОД #1 возобновляется работу и начинает подкачивать пропущенные данные из ЦОД #2. Размер кворума по-прежнему равен 1. c. Процесс обогащения данных для ЦОД #1 еще не окончен, но теперь выходит из строя ЦОД #2. В этом случае кластер становится недоступным.

Ситуация #2: попытка повторно понизить размер кворума до минимума a. ЦОД #1 (из 2 узлов) выходит из строя, а ЦОД #2 (тоже из 2 узлов) остается работать. b. Один из 2 узлов в ЦОД #2 выходит из строя. В этом случае кластер также становится недоступным. Ситуация #3: оба ЦОД выходят из строя – это крайний случай, когда кластер становится недоступным.

В остальных ситуациях кластер сохраняет работоспособность.

[EE] MemCS: многочисленные улучшения

Реализован ряд небольших улучшений в работе движка MemCS, в основном на тему индексов и производительности. Теперь MemCS поддерживает следующие возможности: * Агрегация по полям типа decimal, * Вставка в середину первичного индекса с агрегациями, * Задание поколоночной схемы в настройках формата спейса, а также определений вторичных индексов, * index:quantile(), * Агрегаты для bloom-фильтров, * Статистика агрегатов и сканера индекса, * Экспорт агрегатов индекса в соответствующие Lua-объекты, * Ряд улучшений для работы с C API на тему вставки и сканирования данных в формате Apache Arrow.

Также повысилась производительность пропусков индексных записей (skip index writes) в MemCS. Теперь для индекса не производится аллокация блоков, если они не используются никаким представлением для чтения (read view).