Tarantool 3.9
Дата выпуска: 2026-10-30
Релизы на GitHub:
В релизе Tarantool 3.9 добавлены следующие основные функциональные возможности и улучшения для редакций Community и Enterprise:
-
Community Edition (CE)
- Поддержка SSL/TLS и аутентификации pap-sha256 в Community Edition
- Потоки приложения признаны стабильными
-
Enterprise Edition (EE)
- Настраиваемая случайная задержка для плавного обновления конфигурации в кластерах большого размера
- Двухфазный процесс обновления SSL-сертификатов
- Настраиваемые оповещения об истечении срока действия SSL-сертификатов
- Поддержка индексов по массивам (multikey) и функциональных индексов по массивам в memtx MVCC
SSL/TLS-шифрование и аутентификация pap-sha256 теперь доступны в Community Edition. До этого релиза эти функции поддерживались только в Enterprise Edition. Единственное исключение — наборы шифров GOST, которые остаются доступны только в Enterprise Edition.
Потоки приложения позволяют коду приложения использовать дополнительные потоки для выноса части работы из основного потока. Как и основной поток, каждый поток приложения выполняет независимый цикл событий и интерпретатор Lua, и для него доступно большинство встроенных модулей Tarantool.
Для взаимодействия с потоками приложения был разработан встроенный Lua-модуль threads.
Потоки приложения впервые появились в Tarantool 3.7 как экспериментальная функция.
В Tarantool 3.9 модуль threads был выведен из экспериментального пространства имен,
и вся связанная с потоками приложений функциональность теперь считается стабильной.
[EE] Настраиваемая случайная задержка для плавного обновления конфигурации в кластерах большого размера
Новый параметр config.reload_jitter задает интервал (в секундах) для перезагрузки конфигурации. В пределах этого интервала экземпляр случайным образом выбирает момент получения новой конфигурации из удаленного хранилища (etcd или TbCS). Это необходимо для плавного обновления конфигурации в кластерах большого размера. Благодаря такой логике экземпляры не получают конфигурацию одновременно (что вызвало бы всплеск нагрузки), а применяют новую конфигурацию в рамках одного интервала времени.
Этот параметр влияет только на автоматическую перезагрузку из удаленного источника; явный вызов
config:reload() не откладывается и немедленно завершает текущий интервал.
При изменении сертификата, используемого для подключения к экземплярам набора реплик (при изменении URI,
включая SSL-параметры, в конфигурации iproto.listen/replication), экземпляр теперь:
- Применяет новое значение
iproto.listenнемедленно — таким образом, новый сертификат сразу начинает обслуживать входящие запросы. - Откладывает переподключение
replicationк новым URI на интервал времени (этот интервал вычисляется на основе ряда параметров конфигурации, подробнее см. config.reload_jitter).
Это дает другим экземплярам время на то, чтобы начать обслуживание с новыми сертификатами, прежде чем текущий экземпляр переподключится
к ним через replication — то есть происходит двухфазное обновление сертификата:
сначала обновляется слушающий сокет (iproto.listen),
а затем, с задержкой, — исходящие соединения (replication).
Еще одно улучшение управления SSL-сертификатами в этом релизе — периодические оповещения о любых проблемах с
файлами SSL-сертификатов, используемых для зашифрованных соединений.
Оповещения настраиваются через config.etcd.ssl.ssl_cert, SSL-включенные config.storage.endpoints
и failover.iproto.ssl.ssl_cert. Проверка выполняется каждые 12 часов, а также сразу
после перезагрузки конфигурации. Предупреждение появляется не позднее чем за 30 дней до истечения срока действия сертификата
и продолжает появляться после истечения. Проверяется только первый сертификат в каждом PEM-файле.
Подробнее см. Мониторинг истечения срока действия SSL-сертификата.
Начиная с этого релиза, TREE-индексы по массивам и функциональные TREE-индексы по массивам поддерживаются при включенном memtx менеджере транзакций, с теми же гарантиями изоляции, что и у остальных индексов TREE.