Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 21 октября 2026 г. в 10:46

Tarantool 3.6

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

Релизы на GitHub:

В версии 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).