Журнал изменений
В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool DB. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
Список версий Tarantool DB:
- [1.2.7] - 2026-09-18
- [1.2.6] - 2026-05-04
- [1.2.5] - 2025-09-01
- [1.2.4] - 2025-07-21
- [1.2.3] - 2025-04-28
- [1.2.2] - 2024-10-25
- [1.2.1] - 2024-09-19
- [1.2.0] - 2024-09-04
- [1.1.0] - 2024-06-03
- [1.0.0] - 2024-05-07
- [0.8.0] - 2024-03-22
- [0.7.1] - 2024-02-14
- [0.7.0] - 2024-01-25
- [0.6.1] - 2023-12-06
- [0.5.0] - 2023-08-25
-
SDK обновлен c версии 2.11.9-0-r708 до 2.11.9-0-r710.
-
Обновлены модули:
-
TCF обновлен с версии 0.11.3 до 0.13.0.
-
Docker-образ обновлён на базе RedOS с версии 7.3.6 до 7.3.7.
-
Добавлена поддержка EMIAS OS 2025 DC 1.2.
-
Обновления документации:
- В GitHub-репозиторий
tarantool/tarantooldb-examplesдобавлен запускаемый пример Включение и использование синхронной репликации. - Добавлен раздел об особенностях настройки синхронной репликации в новом или в уже существующем кластере.
- Дополнена информация по процедуре обновления без простоя через ATE.
- Добавлен раздел про обновление конфигурации кластера через GraphQL API.
- Добавлен раздел документации про модель безопасности TDB и минимальные разрешения для типовых сценариев работы с TDB.
- В GitHub-репозиторий
В этом релизе SDK обновлены версии модулей cartridge, metrics, vshard, а также утилиты tt CLI EE.
Добавлено:
- Команда
tt cluster worker publishдля публикации (загрузки) конфигурации узла-обработчика в etcd или TbCS. - Команда
tt cluster worker showдля вывода конфигурации узла-обработчика, которая хранится в etcd или TbCS. - Команда
tt cluster worker deleteдля удаления конфигурации узла-обработчика из etcd или TbCS.
Исправлено:
- Ошибка парсинга CSV-файлов, при которой возникало сообщение
can't parse any to map or array, если данные не соответствовали ожидаемому формату. - Ошибка в
tt start, из-за которой не выводилось сообщение при недостаточных правах доступа к директивеvar.
Добавлено:
- Опция
--vshard-bootstrap-timeout(переменная окруженияTARANTOOL_VSHARD_BOOTSTRAP_TIMEOUT) для ролиvshard-router, позволяющая настроить время ожидания для операцииbootstrapв vshard. Значение по умолчанию в 10 секунд сохранено, однако его может быть недостаточно для распределения сегментов по узлам хранилища на медленных CI-раннерах. - Необязательный аргумент
timeoutдля методовcartridge.test-helpers.Cluster:start,cartridge.test-helpers.Cluster:bootstrapиcartridge.test-helpers.Cluster:bootstrap_vshard, позволяющий увеличить время ожидания HTTP-запроса для операцииbootstrap.
Изменено:
Обновлены зависимости:
membershipс версии 2.5.3 до 2.5.4 (исправлена ошибка, из-за которой данные участника могли безвозвратно теряться после вызоваleave()и последующего повторного присоединения).vshardс версии 0.1.40 до 0.1.42 (см. изменения в vshard 0.1.40 → 0.1.42);checksс версии 3.4.0 до 3.4.1 (добавлены аннотации EmmyLua).httpс версии 1.9.0 до 1.9.1 (в релиз включены исправления инфраструктуры, которые не меняют поведение модуля).
Исправлено:
- Проблема, приводящая к состоянию гонки при завершении работы экземпляра, из-за которой
membership.leave()мог выполняться до остановки ролей, вызывая ошибки. - Когда метод
box.ctl.promote()возвращает ошибкуER_INTERFERING_PROMOTEво время срабатывания аварийного переключения, повторная попыткаbox.ctl.promote()выполняется 3 раза с задержкой в 1 секунду, чтобы новый мастер-узел не застрял в режиме только для чтения.
Добавлено:
- В системные спейсы
crud.schemaдобавлен спейс_recovery_point, представленный в предстоящей версии Tarantool 3.8. - Метод
crud_locate()— позволяет определить, в каком движке (memtxилиvinyl) находится кортеж по первичному ключу. Работает только при использовании модуляcooler. - Поддержка опций
mode,balance,prefer_replicaиrequest_timeoutв методеcrud.len().
Изменено:
Обновлена зависимость vshard до версии 0.1.42 (см. изменения в vshard 0.1.40 → 0.1.42).
Исправлено:
- Исправлена ошибка нарушения согласованности во время перебалансировки: запрос мог быть повторен на хранилище, которое еще не владело сегментом, поэтому чтение не возвращало данных, а данные при записи попадали в неправильный набор реплик.
- Исправлено повторное выполнение запросов: теперь запрос повторяется только в том случае, если роутер восстановился после ошибки, и повторная попытка никогда не превышает исходное время ожидания — раньше запрос мог занять в два раза больше времени, чем запрашивалось.
- Операции чтения (
get,select,pairs,count,min,max) теперь могут выполняться через работоспособные реплики, когда все мастер-узлы кластера недоступны. - Добавлена метрика
tnt_crud_storage_nil_bucket_id_compat_totalдля отслеживания операций, выполненных безbucket_refв режиме совместимости со старыми роутерами. - Обеспечена совместимость с роутерами версий ниже 1.7.0, когда в запросах
get,updateиdeleteнулевойbucket_id. Теперь хранилище пропускает обращение к сегментам и регистрирует предупреждение об ограничении скорости обработки данных, указывающее на снижение безопасности перебалансировки во обновления без простоя.
Добавлено:
- Фильтрация пользовательских метрик на основе селекторов. Методы
metrics.namespace()иmetrics.set_filter()используются для пометки пользовательских сборщиков/коллбэков селекторами и их фильтрации во время сбора данных.
Исправлено:
- Для
config_metrics_testсистемные оповещения отключаются только при наличии опцииconfig.checks(вместо проверки версии Tarantool), благодаря чему тест проходит на любой версии Tarantool 3.x. - Ошибка в
metrics.cfg{exclude = {'all'}}, из-за которой пользовательские селекторы метрик исключались в дополнение к встроенным группам метрик.
Добавлено:
- Вспомогательная функция
drop_sharding_key()для очистки системного спейса_ddl_sharding_keyпосле удаления сегмента. - Вспомогательные функции
(register|drop)_sharding_func(). - Примечание в файле README о том, что вызов
register_sharding_key()необходим при создании шардированного спейса.
Исправлено:
- До этой версии, когда у набора реплик не было работоспособного кандидата на роль лидера (т.е. лидер в наборе реплик был отключен, неактивен или
еще не избран при автоматическом восстановления после отказа в режиме
stateful), методmigrator.up()молча пропускал этот шаг и сообщал об успешном завершении. Теперь перед миграцией у каждого набора реплик проверяется наличие работоспособного кандидата на роль лидера. Если у набора реплик еще нет активного лидера или его лидер неработоспособен, процесс завершается с ошибкой, чтобы вызывающая сторона могла дождаться появления лидера и повторить попытку.ё
Версия 0.1.42 полностью совместима с предыдущими версиями vshard.
Добавлено:
- Бэкенд для менеджера точек восстановления Tarantool: бэкенд
vshard-router. Он позволяет менеджеру периодически создавать согласованные с кластером точки восстановления, которые впоследствии можно использовать для резервного копирования и восстановления всего кластера vshard на определенный момент времени. Новый публичный метод роутераvshard.router.create_cluster_recovery_point()создает точку восстановления на мастер-узле в каждом наборе реплик. - Опция конфигурации хранилища
rebalancer_bucket_send_timeout. Опция задает время ожидания в секундах для отправки одного сегмента во время перебалансировки. Это можно использовать для ограничения времени, в течение которого сегмент может быть недоступен для записи во время его отправки. - Улучшен выбор сегментов балансировщика: теперь балансировщик предпочитает сегменты, в которых нет активных запросов на чтение и запись (RW).
Исправлено:
- Ошибка, из-за которой могли появляться дубли активных сегментов из-за задержки stray-пакетов TCP.
- Ошибка, из-за которой запросы на чтение и запись могли нарушить репликацию после переключения мастер-узла во время перебалансировки.
- Ошибка, при которой переключения мастер-узла во время ребалансировки могли привести к появлению дублей активных сегментов.
Добавлено:
- Межкластерные репликаторы поддерживают репликацию спейсов, использующих движок vinyl.
- Рекомендации по настройке etcd для ограничения роста базы и описание применения
etcdctl defrag. - Рекомендации для хранилища на основе Tarantool по настройке контрольных точек/снимков для ограничения роста
xlog. bucket_map_cache_ttl— поле в конфигурации Destination, позволяющее настраивать время жизни кэша карты сегментов (bucket map) в роутере.router_quorumиstorage_quorum_per_replicaset— новые параметры в конфигурации TCF-координатора, позволяющие настраивать кворумы для маршрутизации и хранения.
Изменено:
- Убраны избыточные операции удаления и создания блокировок в хранилище состояния.
- Обновление блокировок репликаторов в хранилище состояния теперь осуществляется через механизм keepalive, а не через выдачу новой аренды (lease).
- Кеширование карты сегментов в роутере. По умолчанию время жизни кэша — 10 секунд.
Исправлено:
- Исправлен возможный сбой типа split-brain в репликации внутри кластера, вызванный смешиванием синхронных DML с асинхронными обновлениями состояния CDC из событий heartbeat.
- Исправлен запуск шардированной группы с несколькими экземплярами
gateway: ранее группа экземпляров не стартовала без префикса хранилища состояния (state provider). - В конфигурации etcd для репликаторов больше не требуется указывать схему в адресе хоста (например,
http://илиhttps://). - Возможный бесконечный цикл при обработке пользовательских ограничений.
- Ложные предупреждения при захвате флага
/coordinator/lock. Предупреждения стали более информативными и не вводят в заблуждение. - Избыточный запрос на получение UUID набора реплик при подключении репликаторов к хранилищу конфигурации на основе Tarantool.
Узнать больше можно в документации TCF, в разделах TCF 0.13.x, TCF 0.12.x и Журнал изменений.
- Добавлен адрес обработчика запросов (endpoint) для перевода спейсов в синхронный режим.
- SDK обновлен до версии 2.11.9-0-r708.
- TCF обновлен до версии 0.11.3.
- Docker-образ обновлён на базе RedOS 7.3.6.
- Обновлены модули:
- cartridge 2.17.0;
- cartridge-metrics-role 0.1.3;
- crud 1.7.4;
- dictionary 2.3.5;
- expirationd 1.7.0;
- metrics 1.7.0;
- vshard 0.1.40.
- Обновлены модули:
- cartridge 2.16.3;
- metrics 1.5.0;
- migrations 1.1.0;
- vshard 0.1.36.
- Доработана документация:
- Добавлен документ по настройке
stateful failoverсetcd.
- Добавлен документ по настройке
- SDK обновлен до версии 2.11.7-0-r691.
- Обновлены модули:
- cartridge 2.16.2;
- crud-ee 1.7.4;
- metrics 1.4.0;
- tcf-cartridge-role 0.9.0;
- vshard-ee 0.1.34.
- SDK обновлен до версии gc64-2.11.6-0-r680.
- Обновлены модули:
- cartridge 2.15.2;
- dictionary 2.3.4;
- migrations-ee 1.3.1;
- tcf-cartridge-role 0.7.0;
- vshard-ee 0.1.32.
- Docker-образ переведён на RedOS 7.3.5 Murom.
- Доработана документация:
- Изменён формат поставки документации с Markdown на PDF.
- Добавлена поддержка операционной системы "Мос.ОС" с версии 15.5.
- SDK обновлен до версии 2.11.4-0-r655.
- Обновлены модули:
- cartridge 2.12.4;
- crud-ee 1.7.1;
- migrations-ee 1.3.0;
- vshard-ee 0.1.29.
- Добавлен скрипт генерации конфигурации кластера для Tarantool DB 2.0.
- Обновлены модули:
- dictionary 2.3.2.
- В клиентской утилите
bootstrap.shтеперь можно указывать имя файлаtopology.json. - Добавлен пример с модулем
expirationdс универсальной функцией (expirationd_universal_func). - SDK обновлен до версии 2.11.3-0-r648.
- Обновлены модули:
- cartridge 2.12.2;
- crud-ee 1.7.0;
- dictionary 2.3.1;
- metrics 1.1.0;
- migrations-ee 1.2.0;
- expirationd-ee 1.8.0;
- vshard-ee 0.1.27.
Для перехода на новые миграции необходимо выполнить
require('migrator').move_migrations_state()
на любом узле кластера.
Узнать больше: Версия 1.1.0.
- SDK обновлен до версии 2.11.3-0-r633.
- Обновлены модули:
- Отключён модуль DDL.
- Все утилиты теперь хранятся в папке
tools, добавлены скрипты от команды техподдержки.
- Обновлена версия TCF до 0.1.1, добавлен раздел TCF в веб-интерфейс Tarantool DB.
- Завершён цикл тестирования релиза 1.0.
- Доработана функция проверки здоровья кластера.
- Доработана документация:
- Добавлен пример на Java о работе с определенным экземпляром Tarantool DB.
- Добавлен пример на Java о балансировщике запросов к роутерам.
- В стенде примера на Go InfluxDB и Telegraf заменёны на Prometheus.
- Исправлена ошибка в примере
up_with_ttи доработан текст. - Добавлен пример стенда Tarantool DB и Tarantool Clusters Federation.
- Доработан Makefile для публикации артефактов под архитектуру aarch64.
- Добавлен функционал словарей (справочников).
- Добавлена поддержка Tarantool Clusters Federation (TCF).
- SDK обновлен до версии 2.11.2-0-r621.
- Обновлены модули:
- cartridge 2.9.0;
- dictionary 1.4.0.
- Доработан скрипт
bootstrap.sh: теперь скрипт дожидается копирования исходных файлов, если процесс происходит в CI.
- Доработана документация:
- Обновлены разделы, касающиеся работы с утилитой TT CLI.
- Доработаны разделы "Первые шаги" и "Добавление пользовательской логики".
- Добавлено использование
utils.check_roles_enabledв примерах. - Удален устаревший пример
up_single, вместо него добавлен примерall_in_one. - Добавлен пример на Java о работе с кластером Tarantool DB через модуль CRUD.
- Исправлена ошибка с правами в Docker-образе.
- Добавлены интеграционные тесты для коннекторов Go и Python.
- SDK обновлен до версии 2.11.2-0-r616.
- Обновлены модули:
- cartridge 2.8.5-1;
- crud 1.4.3-1;
- migrations 0.7.0-1;
- luatest 1.0.1.
- Доработана документация:
- Добавлено описание ролей.
- Добавлен пример на Go реализации функционала балансировщика запросов к роутерам.
- Добавлен пример на Go о работе с кластером Tarantool DB через модуль CRUD.
- Добавлен пример на Go о работе с определенным экземпляром Tarantool DB.
- Добавлен пример на Go о замене автокодировщика в MsgPack на свой алгоритм.
- Дополнен раздел для разработчиков Tarantool DB.
- Добавлен пример создания типового приложения на Tarantool DB c изменением схемы данных (doc/examples/migrations).
- Добавлен пример о работе с модулем отслеживания устаревания данных (expirationd).
- Добавлен пример выполнения миграций с удалённой машины.
- Добавлен пример выполнения миграций в CI.
- Добавлено описание включения и отключения метрик в CRUD.
- Добавлена документация о read view и его использовании с модулем CRUD.
- Добавлен пример шифрования трафика.
- SDK обновлен до версии 2.11.2-0-r609.
- Обновлены модули:
- cartridge 2.8.4-1;
- crud 1.4.1-1;
- migrations 0.6.0-1;
- space-explorer 1.1.8-1.
- Скрипт
bootstrap-app.shразделен на два отдельных скрипта:bootstrap.shиmigrate.sh. Скрипты переработаны: они теперь содержат retry и расширенный вывод об ошибках. Все клиентские утилиты теперь хранятся в папкеclient/utils. Утилиты не имеют зависимостей от Tarantool DB. - Признан устаревшим скрипт
bootstrap-app.sh. Он будет удалён в будущих версиях Tarantool DB. - Добавлена документация о клиентских утилитах.
- Изменён запуск кластера во всех примерах, где использовался скрипт
bootstrap-app.sh. - Добавлены тесты для проверки поддержки различных CRUD-операций.
- Добавлена роль
tracingдля трассировки пользовательских функций.
- Роль
tracingпереименована вslow_log. - Обновлена документация:
- Добавлен пример запуска и конфигурации одного экземпляра Tarantool DB с помощью Docker-контейнера.
- Добавлен пример скрипта для конфигурации кластера
bootstrap-app.sh. - Добавлены описание и пример запуска и конфигурации кластера с помощью Docker Compose.
- Добавлен раздел "Конфигурация и запуск кластера локально через утилиту
tt". - Добавлена документация о встроенном модуля логирования долгих запросов (роль
slow_log). - Обновлены остальные разделы.
- Кодовое имя релиза
kveeзаменено на название продуктаtarantooldb. - Добавлены исправления и улучшения.
- Tarantool EE обновлен до версии 2.11.1.
- Обновлены модули:
- cartridge 2.8.0;
- cartridge-metrics-role 0.1.1;
- crud 1.2.0.