TDB Documentation portal logo
Помощь
Обновлена 22 октября 2026 г. в 11:37

Журнал изменений

В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool DB. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.

Списки версий и изменений во встроенных модулях и зависимых компонентах приведены в соответствующих GitHub-репозиториях и на сайте Tarantool: Tarantool, TCM, TCF, ATE, crud, expirationd, healthcheck-role, metrics-export-role, vshard, tt.

Список версий Tarantool DB:

[3.3.0] - 2026-10-20

Релиз Tarantool Database 3.3.0 включает обновления платформы, модулей и документации, а также других продуктов на основе Tarantool. Ниже кратко описаны ключевые изменения и требования к обновлению. Подробная информация о наиболее заметных изменениях и новой функциональности в релизе приведена в разделе Tarantool Database 3.3.

Чтобы обновить Tarantool Database 3.2.0 до версии 3.3.0, выполните штатное обновление продукта до версии 3.3.0. При обновлении с простоем после завершения обновления необходимо вызвать команду tt replicaset upgrade для обновления системных спейсов.

Обновления Tarantool DB

Обновления SDK и модулей

Tarantool Enterprise SDK с версии gc64-3.7.1-0-r91 до gc64-3.8.1-0-r93:

Исправлено:

  • Работа CMake для использования предварительно собранных артефактов EE с gc64.

Tarantool 3.7.1 → 3.8.1

Этот релиз охватывает версии 3.8.0 и 3.8.1. В версии 3.8.0 в Community Edition (CE) внесено 33 улучшения и исправлено 24 ошибки, в Enterprise Edition (EE) — 7 улучшений и 10 исправлений. В версии 3.8.1 исправлены 2 проблемы в EE, а также внесено 1 улучшение и 15 исправлений в CE.

Добавлено:

  • (Core) Добавлено новое значение box.cfg.read_only — 'unless_bootstrap'. Экземпляр, настроенный таким образом, становится доступным для записи только в том случае, если он выполнил начальную загрузку набора реплик при текущем запуске, и остаётся в режиме только для чтения, если восстановился из локального снимка данных или присоединился к набору реплик, уже прошедшему начальную загрузку. Режим определяется атомарно во время начального вызова box.cfg(), поэтому экземпляр никогда не проходит через переходное состояние, доступное для записи. Значение может быть задано только во время начального вызова box.cfg().

  • (Core) Если Tarantool запускается без конфигурационного файла и box.cfg.app_threads задаётся из кода приложения, модуль experimental.threads инициализируется с группой потоков по умолчанию с именем app.

  • (Core) Идентификатор потока теперь можно использовать как цель для функций call и eval модуля experimental.threads.

  • (Core) Потоки приложения теперь именуются <group><id>, где <group> — имя настроенной группы, а <id> — идентификатор потока внутри этой группы. Имена потоков используются в журналах, что упрощает определение потока, записавшего сообщение. Поле thread_id, возвращаемое функцией info() Lua-модуля experimental.threads, теперь содержит идентификатор потока внутри группы, а не глобальный внутренний идентификатор.

  • (Core) Добавлена поддержка спецификации XDG Base Directory для файла истории консоли. Поиск файла истории теперь идет в каталогах $XDG_STATE_HOME/tarantool и $HOME/.local/state/tarantool, при этом унаследованный путь $HOME/.tarantool_history имеет приоритет, чтобы обеспечить бесшовную миграцию. При новой установке каталог состояния, соответствующий XDG, создаётся автоматически.

  • (Core) Lua-модуль trigger теперь доступен в потоках приложения.

  • (Core) Lua-модуль experimental.threads теперь можно использовать для вызова потока tx, когда группы потоков не настроены.

  • (Core) Ошибки репликации и сообщения Raft теперь включают расширенное представление узлов (name/uuid, id и addr) как для локального, так и для удалённого узла.

  • (Core) Метод box.backup.start() теперь создаёт резервные копии WAL-файлов, которые ротируются в момент вызова.

  • (Core) В box.backup.start() добавлен параметр from_vclock для создания инкрементальных резервных копий.

  • (Core) В box.backup.start() добавлен параметр ttl, задающий срок хранения резервных копий.

  • (Core) Добавлена опция совместимости box_backup_default_ttl, управляющая сроком хранения резервных копий по умолчанию.

  • (Core) Добавлен API box.backup.info() для получения информации о выполняемом резервном копировании.

  • (Core) Добавлен метод box.backup.recovery_point.create() для создания точки восстановления.

  • (Core) В результат box.backup.info() добавлено поле recovery_points, показывающее точки восстановления, находящиеся в резервных WAL-файлах.

  • (Core) Добавлена опция конфигурации session.users.<name>.idle_timeout, закрывающая неактивные IPROTO-соединения пользователя по истечении заданного времени ожидания.

  • (Core) В box.backup.recovery_point добавлен менеджер точек восстановления: методы manager_create(), manager_drop() и таблица managers. Менеджер периодически создаёт точки восстановления с помощью подключаемого бэкенда и доступен до вызова box.cfg().

  • (Core) Добавлено поле box.info.health с проверками активности (liveness) и готовности (readiness). Приложения могут регистрировать пробы активности с помощью box.ctl.liveness_probe(), а роли — предоставлять проверки готовности через метод роли health_check(). Сбои проверок также отображаются в box.info.config.alerts.

  • (Config) В модуль experimental.config.utils.schema добавлена поддержка типа схемы union, позволяющего значению соответствовать одному из нескольких вариантов схемы. Устаревшие типы string, number и number, string удалены — вместо них используйте union.

  • (Config) Добавлен метод config:cluster_config(), возвращающий «сырую» конфигурацию кластера после объединения всех источников конфигурации кластера. Значения по умолчанию не применяются, а переменные шаблонов не подставляются.

  • (Config) Опции metrics.include и metrics.exclude расширены: теперь они принимают пользовательские селекторы метрик в дополнение к встроенным группам метрик.

  • (Config) Расширен API оповещений: методы set(), add(), unset() и clear() теперь возвращают bool, указывающий, было ли внесено изменение. Например, set() возвращает false, если оповещение с таким ключом и сообщением уже существует. Также добавлен метод alerts_namespace:get(key) для поиска оповещения по ключу.

  • (Config) Добавлена поддержка скалярных значений в config.context: переменная шаблона теперь может быть задана напрямую строкой, числом или булевым значением. Переменные можно переопределять на любом уровне иерархии (глобальном, группе, наборе реплик, экземпляре).

  • (Config) Добавлено журналирование собранной конфигурации экземпляра, когда запуск с декларативной конфигурацией завершается ошибкой после сбора конфигурации и установлен TT_CONFIG_DEBUG=1. Чувствительные значения маскируются.

  • (Config) Добавлена опция конфигурации sharding.rebalancer_bucket_send_timeout. Поддерживается начиная с vshard 0.1.41. Значение по умолчанию — бесконечность.

  • (Config) Опции конфигурации, связанные с памятью, теперь поддерживают человекочитаемые единицы размера: B, KiB, MiB, GiB, TiB и PiB — как в конфигурационных файлах, так и через box.cfg{...}.

  • (Config) Опции конфигурации, связанные с длительностью, теперь поддерживают человекочитаемые единицы времени: ms, s, m, h, d, w, M и y — как в конфигурационных файлах, так и через box.cfg{...}.

  • (Config) Модуль experimental.config.utils.schema теперь предоставляет метод :normalize(), преобразующий человекочитаемые значения размера и длительности (например, 256MiB или 30s) в числовые значения в соответствии с аннотациями схемы.

  • (Config) Добавлен метод config:is_metric_enabled() для проверки, включена ли группа или селектор метрик применённой конфигурацией metrics.include / metrics.exclude.

  • (Config) Добавлена встроенная роль roles.recovery-point-manager, которая периодически создаёт точки восстановления по всему кластеру с помощью настраиваемого бэкенда (встроенный бэкенд net-replicaset создаёт точку на лидере удалённого набора реплик).

  • (Metrics) Обновлён подмодуль metrics до версии 1.8.1: добавлена фильтрация пользовательских метрик на основе селекторов (metrics.namespace() и metrics.set_filter(), опции include/exclude в metrics.cfg()), а также исправлен metrics.cfg{exclude = {'all'}} для исключения пользовательских селекторов метрик.

  • (EE, Audit) В события аудита добавлено новое поле session_id, связанное с сессией. Событие disconnect теперь сообщает в описании длительность сессии и была ли сессия закрыта из-за простоя (idle timeout).

  • (EE, Audit) Добавлена группа событий integrity_check с событиями integrity_check_ok и integrity_check_fail. Событие integrity_check_ok регистрируется при успешной проверке целостности файла или буфера данных, а integrity_check_fail — при неудачной проверке, с указанием имени файла или идентификатора буфера и возникшей ошибки (например, несовпадение хешей или невозможность открыть файл). Событие integrity_check_ok имеет уровень VERBOSE, а integrity_check_fail — ALARM.

  • (EE, Core) В «сырые» представления для чтения добавлен метод count().

  • (EE, Memcs) Добавлена поддержка алгоритмов сжатия zstd и zlib для столбцов MemCS. Ранее был доступен только lz4.

  • (EE, Memcs) Индексы MemCS теперь поддерживают тривиальные изменения без перестроения (например, переименование).

  • (EE, Memcs) Атрибут aggregates индекса MemCS теперь можно изменять.

  • (EE, Memcs) Добавлена поддержка REE-кодированных столбцов в skip-индексах MemCS.

Исправлено:

  • (Application server) Ошибка, из-за которой Tarantool мог зависнуть при запуске, когда были настроены потоки приложения (application threads).

  • (Application server) Корневой каталог, из которого загружаются Lua-зависимости, теперь глобальный: задание его с помощью package.setsearchroot() в tx или в любом из потоков приложения теперь влияет на все потоки приложения и tx.

  • (Core) Падение при вызове box.ctl.wal_sync() до box.cfg{}. Теперь в этом случае возвращается ошибка ER_UNCONFIGURED.

  • (Core) Падение при обновлении с удалением по JSON-пути с терминальным ключом, когда удаляемый ключ в кортеже имел неоптимальную кодировку.

  • (Vinyl) В некоторых случаях vinyl откладывал проверку ограничений полей UPSERT до чтения или сжатия. Нарушающий UPSERT при этом мог быть пропущен без возврата ошибки клиенту. Теперь ограничения проверяются во время UPSERT, когда операции обновления могут изменять столбцы с ограничениями, что соответствует поведению memtx.

  • (Replication) Ошибка упорядочивания при пакетной записи WAL (WAL batching), из-за которой присоединяющаяся реплика могла пропустить строки, записанные мастер-узлом.

  • (Lua) Ошибка в JSON-кодировщике, возникавшая, когда у кодируемого ключа в таблице (map) есть метаметод __serialize.

  • (Http client) Регрессия авторизации по алгоритму Basic на HTTP-прокси или на целевом HTTP(S)-хосте.

  • (SQL) Невозможность одновременно задать порядок сортировки и свойство AUTOINCREMENT для столбцов в табличном ограничении PRIMARY KEY.

  • (SQL) Ошибка, из-за которой идентификатор внешнего поля для внешнего ключа поля терялся после выполнения оператора ALTER TABLE ADD COLUMN.

  • (SQL) Добавлена проверка прав при удалении триггера в SQL. Теперь удалять триггеры для таблицы могут только пользователи с правами 'alter' на эту таблицу.

  • (Config) Ошибка, из-за которой экземпляр, заново прошедший начальную загрузку с пустым каталогом данных, мог запуститься в режиме RW вместе с уже назначенным лидером при replication.failover = supervised и replication.bootstrap_strategy = auto, если у экземпляра было лексикографически минимальное имя в наборе реплик. Кандидат на роль bootstrap-лидера теперь запускается с box.cfg.read_only = 'unless_bootstrap', поэтому заново присоединившийся экземпляр никогда не проходит через состояние, доступное для записи.

  • (Config) Ложная ошибка валидации конфигурации The vshard-ee/vshard module is not available при запуске, возникавшая, когда модуль vshard установлен в настроенный process.work_dir, а процесс запущен из другого каталога, или когда экземпляр без роли шардирования наследует глобальную опцию шардирования, например sharding.bucket_count. Доступность vshard и его минимальная версия теперь проверяются только на экземплярах с настроенной ролью шардирования.

  • (Config) Модули, установленные в настроенный process.work_dir (например, в его каталог .rocks), теперь разрешаются, а относительный путь app.file интерпретируется относительно рабочего каталога даже до первого вызова box.cfg(). В частности, роли и приложение, отмеченные тегом early_load, теперь могут загружаться из рабочего каталога, а значения конфигурации по умолчанию, зависящие от установленной версии vshard, применяются при первом запуске.

  • (Config) Недоступный или устаревший модуль vshard для настроенной роли шардирования, а также настроенная опция шардирования, требующая более новой версии vshard, теперь сообщаются до первого вызова box.cfg(), поэтому некорректно настроенный экземпляр быстро завершается с ошибкой, а не после потенциально длительного восстановления базы данных.

  • (Core) Ошибка двойного освобождения памяти при завершении работы, возникавшая при настроенных потоках приложения.

  • (Core) Падение при завершении работы, когда файбер ожидал переменную условия, созданную в потоке приложения.

  • (Core) Ошибка, из-за которой потоки приложения нельзя было вызывать из триггеров завершения работы.

  • (Core) Сбой утверждения в fiber_signal_reset(), возникавший при инициализации потоков приложения в системах на базе CentOS 7.

  • (Core) Ошибка использования памяти после освобождения, когда триггер space.before_replace делал yield при отключённом MVCC.

  • (Core) Переполнение стека при проверке MsgPack-ввода с глубоко вложенными значениями, содержащими типы-расширения.

  • (Core) Ошибка, из-за которой нулевые значения некорректно отклонялись полями десятичных чисел с фиксированной точкой, когда масштаб был больше или равен точности.

  • (Memtx) Ошибка в изоляции MVCC read-confirmed, из-за которой операции delete и update могли видеть некорректный кортеж.

  • (Replication) Падение, которое могло произойти, когда источник репликации удалялся из box.cfg.replication одновременно с достижением узлом максимального размера очереди WAL (задаётся box.cfg.wal_queue_max_size).

  • (Replication) Исправлена ошибка, из-за которой реплика сразу после переподключения отправляла мастеру устаревшее подтверждение, в результате чего в box.info.replication прогресс vclock реплики на мастер-узле выглядел как движение назад.

  • (Replication) Исправлена ошибка, из-за которой реплики сохраняли старое соединение с мастер-узлом и игнорировали изменения параметров репликации.

  • (Replication) Переработана внутренняя логика election_mode='off'. Продвинутый узел в режиме off теперь отображается как 'leader' в box.info.election.state, а такие узлы могут голосовать за узлы с другим режимом выборов.

  • (LuaJIT) Бэкпортированы исправления из основной ветки LuaJIT: исправлено некорректное JIT-поведение для FFI-функций с переменным числом аргументов на платформе macOS AArch64.

  • (LuaJIT) Исправлены различные проблемы ABI и соглашений о вызовах FFI для архитектур x64 и AArch64.

  • (LuaJIT) Функция ipairs_aux() приведена в соответствие с поведением JIT-бэкенда на x86/x64.

  • (LuaJIT) Исправлен возврат -1 функцией os.time().

  • (LuaJIT) Исправлены предупреждения UBSan для table.new().

  • (SQL) Исправлены коллизии идентификаторов подготовленных операторов — новому подготовленному оператору теперь всегда назначается свободный идентификатор.

  • (SQL) Добавлена проверка прав при создании триггера в SQL: теперь создавать триггеры для таблицы могут только пользователи с правами 'alter' на эту таблицу.

  • (SQL) Теперь возникает ошибка, если столбец встречается более одного раза в подзапросе оператора SELECT.

  • (Config) Недоступная (слишком старая) или отсутствующая версия vshard, требуемая конфигурацией шардирования, теперь определяется на этапе валидации конфигурации, а не при применении. Это гарантирует отклонение некорректной конфигурации до применения каких-либо изменений.

  • (Lua, datetime) Исправлен разбор времени с десятичной дробной частью часа или минуты.

  • (Lua, datetime) Исправлено переполнение стека в функции strptime() при разборе часовых поясов.

  • (Lua, pickle) Исправлено аварийное завершение при вызове pack() с пустой строкой формата или строковым значением для спецификатора формата 'a'.

  • (EE, Memcs) Ошибка, приводившая к срабатыванию утверждения (в отладочных сборках) или возврату некорректных данных (в релизных сборках) при вызове ArrowArrayStream::get_next() во время сканирования столбца с использованием обратного итератора.

  • (EE, Memcs) Отключено использование макета null_rle при включенном сжатии, так как их совместное использование работало некорректно.

  • (EE, Replication) Ошибка, из-за которой экземпляры набора реплик не полностью переподключались после перезагрузки конфигурации с новыми параметрами безопасности.

  • (EE, Replication) Ошибка, из-за которой лидер не переподключался к реплике после перезагрузки конфигурации с изменёнными опциями SSL.

  • (EE, Memtx) Падение при включённом Memtx MVCC, когда replace() завершался ошибкой во время выполняемого обновления спейса.

  • (EE, Memcs) Падение и некорректные результаты при открытии Arrow-потока по индексу MemCS без спроецированных столбцов.

  • (EE, Memcs) Сбой восстановления, когда сжатие включено, а спейс пуст.

  • (EE, Memcs) Исправлено, что представления для чтения MemCS отдавали устаревшую длину словаря для dict-кодированных столбцов.

  • (EE, Memcs) Ухудшение коэффициента сжатия и избыточное потребление памяти для сжатых столбцов при вставке строк небольшими пакетами.

  • (EE, Memcs) Возможное повреждение кучи при распаковке LZ4-сжатых блоков столбцов MemCS.

  • (EE, Memcs) Падение при восстановлении спейсов MemCS, когда compat.box_recovery_triggers_deprecation установлен в 'new'.

  • (EE, Memcs) Возможное падение в ArrowArrayStream::get_next() в отладочных сборках.

crud 1.7.5 → 1.8.0

Этот релиз охватывает версии 1.7.6 и 1.8.0.

Добавлено:

  • Метод crud.atomic_batch(), который атомарно выполняет простые CRUD-операции (get, insert, replace, update, upsert и delete) в одном сегменте.
  • Методы crud.storage_call() и crud.storage_call_many() для вызова персистентных хранимых функций на мастер-узле набора реплик, которому принадлежит сегмент.

Изменено:

  • Обновлена зависимость metrics до версии 1.8.3.
  • Обновлена зависимость migrations до версии 1.2.1.
  • Обновлена зависимость vshard до версии 0.1.42 (см. изменения в vshard 0.1.40 → 1.0.0).

Исправлено:

  • Исправлена ошибка нарушения согласованности во время перебалансировки: запрос мог быть повторен на хранилище, которое еще не владело сегментом, поэтому чтение не возвращало данных, а данные при записи попадали в неправильный набор реплик.
  • Исправлено повторное выполнение запросов: теперь запрос повторяется только в том случае, если роутер восстановился после ошибки, и повторная попытка никогда не превышает исходное время ожидания — раньше запрос мог занять в два раза больше времени, чем запрашивалось.

metrics-export-role 0.4.1 → 0.4.2

Исправлено:

  • Ошибка, из-за которой цели экспорта не останавливались после их удаления из конфигурации роли.
  • Ошибка, из-за которой экспортеры Graphite не останавливались после перезагрузки конфигурации, при которой секция graphite оставалась неизменной.
  • Ошибка, из-за которой для использования пустой секции graphite требовалась версия metrics 1.7.0 или выше.

vshard 0.1.40 → 1.0.0

Этот релиз охватывает версии 0.1.41, 0.1.42 и 1.0.0.

Версия 1.0.0 полностью совместима с предыдущими версиями vshard.

Добавлено:

  • Улучшена производительность сборки мусора сегментов, особенно для больших сегментов, хранящихся в движке vinyl.
  • Бэкенд для менеджера точек восстановления Tarantool: бэкенд vshard-router. Он позволяет менеджеру периодически создавать согласованные с кластером точки восстановления, которые впоследствии можно использовать для резервного копирования и восстановления всего кластера vshard на определенный момент времени. Новый публичный метод роутера vshard.router.create_cluster_recovery_point() создает точку восстановления на мастер-узле в каждом наборе реплик.
  • Опция конфигурации хранилища rebalancer_bucket_send_timeout. Опция задает время ожидания в секундах для отправки одного сегмента во время перебалансировки. Это можно использовать для ограничения времени, в течение которого сегмент может быть недоступен для записи во время его отправки.
  • Улучшен выбор сегментов балансировщика: теперь балансировщик предпочитает сегменты, в которых нет активных запросов на чтение и запись (RW).

Исправлено:

  • Ошибка, из-за которой неудачная инициализация хранилища могла оставить неполную схему и помешать повторным попыткам.
  • Ошибка, из-за которой обновление схемы могло завершить Tarantool, если экземпляр переходил в режим только для чтения.
  • Ошибка, из-за которой автоматическое повышение мастер-узла после изначально включённого режима только для чтения могло оставить хранилище без схемы vshard.
  • Ошибка, из-за которой обратные вызовы on_master_enable или on_master_disable, выполняющие передачу управления, могли привести к рассинхронизации роли мастера с состоянием «только для чтения» у экземпляра.
  • Ошибка, из-за которой ошибки в обратных вызовах on_master_enable или on_master_disable могли помешать фоновым сервисам запуститься или остановиться при смене роли.
  • Ошибка, из-за которой могли появляться дубли активных сегментов из-за задержки stray-пакетов TCP.
  • Ошибка, из-за которой запросы на чтение и запись могли нарушить репликацию после переключения мастер-узла во время перебалансировки.
  • Ошибка, при которой переключения мастер-узла во время перебалансировки могли привести к появлению дублей активных сегментов.

tt CLI EE 2.13.0 → 2.15.1

Этот релиз охватывает версии 2.14.0, 2.15.0 и 2.15.1.

Добавлено:

  • В команде tt restore plan поле restore_targets.instances теперь перечисляет всех участников набора реплик, зафиксированных в резервной копии, с их исходным uuid экземпляра. Мастер-узел указан в списке первым. Благодаря этому оркестратор запускает tt restore apply для каждого экземпляра отдельно. Все участники поднимаются в одной цепочке восстановления, а не присоединяются к пустому набору реплик, как требуется синхронному кворуму для разблокировки после восстановления.
  • В команде tt backup start манифест теперь фиксирует полный состав набора реплик, а не только мастер-узел. Каждый участник указывается со своим числовым идентификатором в кластере.
  • Команда tt backup-id для вывода идентификатора новой резервной копии — текущего времени UTC в формате 20060102T150405Z. Идентификатор передаётся как --backup-id в команды tt backup start, upload и finalize. Идентификаторы сортируются в порядке создания, поэтому два последовательных вызова никогда не выводят одинаковое значение.
  • Параметр --instance-timeout в команде status, ограничивающий время сбора статуса отдельного экземпляра.
  • Команда tt restore apply теперь восстанавливает данные в три отдельных каталога, настраиваемых Tarantool раздельно: параметры --snapshot-dir, --wal-dir и --vinyl-dir задают по одному каталогу, а параметры -c/--config с --instance считывают их из конфигурации кластера.
  • Параметр --dir в командах tt backup start и tt backup finalize, задающий каталог локального архива и фрагмента манифеста вместо $TMPDIR/tt-backup/<backup-id>.
  • Параметры --sslkeyfile, --sslcertfile, --sslcafile и --sslciphers в командах tt backup start и tt backup finalize для подключения к экземпляру с включённым iproto TLS.
  • Параметр --replicasets в команде tt restore plan, ограничивающий восстановление указанными наборами реплик по их именам из конфигурации кластера.
  • Команды tt backup start и tt backup finalize для поддержки создания и финализации локальных артефактов резервного копирования.
  • Команда tt cluster topology для определения топологии кластера из файла, etcd или TbCS с выводом данных в виде таблицы или JSON.
  • Поддержка вывода информации о последнем манифесте резервной копии из файла или хранилища S3 в команде tt backup last.
  • Команда tt backup verify для проверки целостности хранилища резервных копий (в режиме только для чтения): поиск отсутствующих и поврежденных архивов, разрывов в цепочке резервных копий и «сиротствующих» архивов.
  • Команда tt backup gc для очистки хранилища резервных копий на основе правил хранения (retention policy).
  • Команда планирования резервного копирования tt backup plan, которая вычисляет последний валидный манифест для запуска процесса резервного копирования (tt backup start).
  • Команда tt backup upload, формирующая манифест кластера на основе фрагментов от отдельных шардов и загружающая архивы и манифест в файловое хранилище или S3.
  • Параметры --cluster-name и --environment для команд tt backup plan, upload, verify, gc, last и tt restore plan. Параметры определяют поддерево хранилища вида <storage_root>/<cluster_name>/<environment>/, что позволяет размещать в одном хранилище несколько кластеров.
  • Команда tt restore plan для планирования восстановления на хосте-менеджере.
  • Команда tt restore apply для подготовки рабочей директории экземпляра на основе цепочки резервных копий.
  • Команда \history в tt connect для вывода списка последних выполненных команд в интерактивной консоли.

Изменено:

  • В команде tt restore plan целевое время между двумя резервными копиями, у которых изменился состав набора реплик (участник добавлен, удалён или заменён под тем же именем), теперь отклоняется по границе топологии. Предлагаются ближайшие точки восстановления по обе стороны от границы.
  • В команде tt restore plan поле restore_targets.rejoin теперь перечисляет только настроенные экземпляры, для которых в резервной копии нет участника.
  • В команде status для запросов статуса установлено время ожидания по умолчанию 5 секунд.
  • В команде status запросы статуса распараллелены для более быстрого сбора.
  • В команде tt restore apply параметр --work-dir больше не обязателен.
  • В командах tt backup и tt restore apply файл сортировки данных memtx (<signature>.sortdata, Tarantool 3.8+) учитывается как снимок.
  • В командах tt log -f и tt tcm log --follow выводятся только завершённые строки.
  • Команды, работающие с приложением Tarantool 3 (tt start, tt status и другие), читают его конфигурацию кластера один раз вместо одного раза на каждый экземпляр.
  • В tt stop предварительная остановка теперь прерывает процессы для обеспечения параллельного завершения работы.
  • В tt create vshard_cluster в сгенерированном rockspec теперь зафиксирована версия vshard 0.1.42 вместо 0.1.25.
  • В tt backup из манифеста кластера удалено поле creation_duration — оно не использовалось и больше не сериализуется.

Исправлено:

  • Команда tt restore apply теперь отклоняет --patch-uuid, которого нет в восстановленном _cluster на точке восстановления, вместо того чтобы подтвердить восстановление, из которого узел не сможет загрузиться.
  • Команда tt restore apply теперь отклоняет цепочку архивов с пропуском между журналами. Раньше такой пропуск применялся с незаметным разрывом в данных.
  • В командах tt connect, tt replicaset, tt cluster topology и tt backup добавлены параметры --sslpassword и --sslpasswordfile для расшифровки закрытых SSL-ключей, защищённых паролем.
  • В командах tt connect, tt replicaset, tt cluster topology и tt backup добавлен параметр --connect-timeout для ограничения времени установки соединения. Значение по умолчанию: 1 секунда.
  • В команде status исправлено игнорирование ошибок репликации.
  • В команде tt backup start запись архива теперь именуется относительно каталога данных, в котором хранятся файлы соответствующего типа.
  • В командах tt cluster publish и tt cluster show исправлено зависание при подключении к https://-точке Tarantool Config Storage или etcd с включённым SSL без настроенного клиентского сертификата.
  • В командах tt log -f и tt tcm log --follow исправлена возможность дублирования строки сразу после ротации журнала и зависание слежения.
  • В команде tt log -f исправлено сообщение о недоступном файле журнала: вместо имени файла выводилось %!q(MISSING).
  • В команде tt clean исправлен показ файлов к удалению перед подтверждением; добавлена опция подробного вывода (verbose).
  • Ошибка, при которой команда tt migrations apply применяла миграции к каждому набору реплик независимо.
  • Ошибка, при которой команда tt migrations publish могла опубликовать директорию со сценариями, даже если некоторые файлы в ней были некорректными.
  • Ошибка в tt log -f, которая вызывала следующие проблемы:
    • возможную потерю или дублирование строк при переименовании файла;
    • зависание после удаления отслеживаемого каталога логов;
    • строки, записанные в момент достижения конца файла, не отображались до следующей операции записи.

Tarantool Cluster Manager (TCM) 1.10.0 → 1.11.1

Этот релиз охватывает версии 1.11.0 и 1.11.1.

Добавлено:

  • (bootstrap) Возможность создавать пользователя с несколькими секретами через поле initial-settings в конфигурации, а также задавать описание секрета флагом --secret-description CLI или полем secret-description в initial-settings.
  • (bootstrap) Возможность создавать пользователя с секретом типа token через CLI или поле initial-settings в конфигурации.
  • (cli) Команда экспорта конфигурации со скрытыми паролями пользователей (tcm config export с флагом --output/-o).
  • (storage) Настройки кластера integrity-check и signature-private-key-file — проверка подписи и её ключ настраиваются отдельно для каждого кластера или отключаются.
  • (web) API-конечная точка экспорта конфигурации /api/config/export.
  • (web) Страница «Конфигурация TCM» в разделе Tools с возможностью экспорта конфигурации TCM через веб-интерфейс.
  • (stateboard) Значок ребалансировщика (rebalancer) и поиск в веб-интерфейсе — узлы-ребалансировщики в больших кластерах можно находить с помощью фильтра is:rebalancer.
  • (tqe) Поддержка новой роли TQE (roles.tqe-storage).
  • (config) Поддержка создания файлов конфигурации кластера по вложенным путям (например, cluster/config/creds).
  • (export) К экспортированной конфигурации добавляется комментарий-предупреждение со списком удалённых учётных данных и полей, которые нужно заполнить перед использованием конфигурации.
  • (cluster) Конфигурация статического провайдера, позволяющая создавать кластер TCM из переданной YAML-конфигурации (с ограниченными возможностями).
  • (acl) Возможность ограничивать доступ к отдельным файлам конфигурации кластера (Key ACL) для каждого пользователя; права на чтение и запись настраиваются отдельно для каждого файла.
  • (bootstrap) Поддержка создания записей Key ACL из initial-settings.key-acl и экспорта существующих записей Key ACL в эту секцию.
  • (web) В мастере создания и редактирования кластера добавлен вариант провайдера «from configuration» с редактором кода.
  • (bootstrap) Поддержка экспорта кластеров со статическим провайдером, начальной загрузки их конфигураций и создания кластера со статическим провайдером через CLI-команду.
  • (cluster) Возможность создания кластера TbCS на втором шаге формы создания кластера после успешной проверки подключения к провайдеру Tarantool.

Изменено:

  • (addons) Поддержка аддонов прекращена — инициализация аддонов больше ничего не выполняет.
  • (config) initial-settings дополнен обязательными ID для пользователей, ролей и записей ACL.
  • (audit) Протокол журнала аудита теперь выдаёт записи в формате RFC 5424 (поддерживаются datagram- и stream-транспорты).
  • (log) Вывод syslog теперь выдаёт записи в формате RFC 5424 вместо JSON-полезной нагрузки с префиксом CEE.
  • (auth) Управление методами аутентификации перенесено из настроек пользователя в отдельный интерфейс администратора Settings → Authentication Methods.
  • (export) Расширен список скрываемых полей — имена пользователей хранилища и кластера, security.bootstrap-password, security.bootstrap-api-token и test.login-credentials заменяются заглушками, а security.encryption-key, security.encryption-key-file и security.signature-private-key-file не попадают в экспортируемый файл.
  • (cluster) Для статического кластера удалена кнопка запуска проверки подключения (Connection test).

Исправлено:

  • (config) Исправлен разбор YAML-объектов во flow-стиле в iproto.listen, failover.http.listen и failover.metrics.exporters.
  • (auditlog) При нулевом времени ожидания попытки подключения к syslog ограничены двумя секундами — аудируемые запросы больше не ждут системного времени ожидания TCP.
  • (cli) При отсутствии параметров команды больше не выводится ошибка — вместо неё показывается справка по команде.
  • (config) Ошибки валидации конфигурации теперь выводятся явно, без указания дополнительных путей.
  • (stateboard) Для устаревшего (stale) экземпляра больше не показываются проблемы несоответствия версии Tarantool.
  • (stateboard) Несоответствие версии Tarantool теперь сообщается по всему кластеру.
  • (tqe) Улучшено сообщение об ошибке, возникающее, когда кластер не применил конфигурацию.
  • (config) Исправлено сообщение об ошибке проверки целостности конфигурации кластера — теперь в нём указываются имя кластера и причина сбоя проверки.
  • (acl) При удалении кластера удаляются связанные с ним записи ACL и Key ACL.
  • (acl) При удалении пользователя удаляются связанные с ним записи Key ACL.
  • (config) Теперь скрываются поля ssl-password и ssl-password-file; SSL-поля в статической конфигурации кластера также скрываются, а в комментарий к экспортированной конфигурации добавлено предупреждение.
  • (cluster) Статическая конфигурация кластера теперь валидируется — проверяются и формат YAML-файла, и сама конфигурация Tarantool.
  • (security) Конфигурации объединяются так же, как в Tarantool, перед отображением в разделе безопасности.
  • (explorer) Кнопки записи кортежей и операций над спейсами больше не отображаются, когда правило ACL для спейса даёт доступ только на чтение.
  • (tqe) Исправлена проблема на странице метрик TQE, из-за которой выбор метрики не отображал график.
  • (metrics) Исправлена ошибка получения метрик кластера, если какая-либо конфигурация находилась в состоянии черновика.
  • (cluster) Исправлена проблема, из-за которой конфигурации кластера могли выдаваться в разном порядке.
  • (migrations) Исправлена проблема, из-за которой список миграций не обновлялся при переключении на отключённый кластер.
  • (workers) Исправлены предупреждения при включённой аутентификации etcd.
  • (bootstrap) Исправлена ошибка валидации пароля пользователя при начальной загрузке, вызванная тем, что парольная политика применялась после создания пользователя.
  • (migrations) Исправлена проблема, из-за которой показывалось уведомление об успехе, когда одна миграция завершилась успешно, а другая — с ошибкой.
  • (stateboard) Исправлена ошибка, из-за которой системные спейсы попадали в статистику сегментов; добавлена сортировка экземпляров и спейсов.
  • (stateboard) Исправлено определение версий модулей HTTP и queue.
  • (stateboard) Исправлено определение несоответствия версий модулей по всему кластеру, а не внутри каждого набора реплик отдельно.
  • (storage) Исправлена ошибка подключения к TLS-кластеру с паролем в файле.
  • (storage) Исправлены предупреждения после нажатия кнопки Start All Tarantool.
  • (storage) Исправлен мониторинг целостности всех защищённых хранилищ данных.
  • (notification) Исправлена ошибка, из-за которой панель ответа исчезала при многократном открытии.
  • (cli) Исправлена ошибка использования команды delete-cluster с коротким флагом -c; флаг для указания ID кластера переименован в -i.
  • (acl) Улучшено сообщение об ошибке ключа ACL.
  • (acl) Исправлена ошибка, из-за которой записи ACL разных типов перезаписывались при добавлении.
  • (secret) Исправлена валидация парольной политики.

Tarantool Clusters Federations (TCF) 0.12.1 → 0.13.0

Добавлено:

  • Межкластерные репликаторы поддерживают репликацию спейсов, использующих движок vinyl.

Изменено:

  • Репликаторы собраны с использованием OpenSSL 3.5.5.
  • Убраны избыточные операции удаления и создания блокировок в хранилище состояния.
  • Обновление блокировок репликаторов в хранилище состояния теперь выполняется через механизм keepalive, а не через выдачу новой аренды (lease).

Исправлено:

  • При конвертации номера полей операций update и upsert и позиции вставки (splice) приводятся к отсчёту с 1.
  • Исправлен возможный сбой типа split-brain в репликации внутри кластера, вызванный смешиванием синхронных DML с асинхронными обновлениями состояния CDC из событий heartbeat.
  • Устранена уязвимость библиотеки gRPC GHSA-HRXH-6V49-42GF.

Узнать больше можно в документации TCF, в разделе TCF 0.13.x.

Ansible Tarantool Enterprise (ATE) 1.20.1 → 1.22.1

Этот релиз охватывает версии 1.21.0, 1.21.1, 1.21.2, 1.22.0 и 1.22.1.

Добавлено:

  • Поддержка новой роли tdb_redis_sentinel в ATE.
  • Поддержка нового способа резервного копирования Tarantool 3.x с поддержкой PITR, включая восстановление PITR для Tarantool 3 с помощью tt restore.
  • Сценарии резервного копирования и восстановления для TCS.
  • Поддержка статических кластеров TbCS (Tarantool-based Configuration Storage) для TCM 1.11.
  • Ожидание завершения репликации перед сменой лидера.
  • Поддержка стандартного logrotate для координатора аварийного переключения.
  • Новый тип изменения relocate_instances и сценарий playbooks/relocate_instances.yml для миграции экземпляров между серверами.
  • Проверка для пропуска перераспределения (rebalancing) в плейбуке playbooks/remove_instances.yml при удалении экземпляров.
  • Новые переменные и начальные настройки для TCM.
  • Дополнительные сценарии (playbooks/tqe/health.yml и другие) для TQE, гарантирующие корректное обновление и проверку здоровья (health-checks).
  • Unit- и integration-тесты для генерации инвентаря.
  • В CI добавлено сканирование уязвимостей Trivy.
  • Поддержка tt migrations для кластеров с TLS-защищённым iproto.
  • TLS-параметры для подключения TCF к Tarantool.
  • В модуле tt добавлено определение лидера TbCS через box.info.election.leader.
  • Поддержка параметра add_replicas, который даёт возможность добавлять и удалять компоненты TCF Gateway и Destination при генерации инвентаря.
  • Доработано и автоматизировано удаление наборов реплик и экземпляров из кластера через новый сценарий playbooks/remove_instances.yml.
  • Параметр change_components в секции changes, который добавляет наборы реплик и экземпляры.
  • Обновление до TQE 3.6.0.

Изменено:

  • Коллекция переведена на Ansible 13.8.0 (ansible-core 2.20.7) вместо Ansible 9.7; обновлён поставляемый Docker-образ.
  • Базовый образ обновлён до RedOS 8 (используется в сборке и CI) из-за требований новой версии Ansible к Python.
  • Минимальная версия Python для работы с коллекцией — 3.12 (ранее 3.11).

Исправлено:

  • PITR-восстановление теперь выполняется для каждого экземпляра, записанного в манифесте резервной копии, а не только для мастер-узла набора реплик. Сценарий playbooks/restore_pitr.yml запускает tt restore apply с флагом --instance <имя> и сохраняет UUID экземпляра с помощью --patch-uuid, поэтому после восстановления у каждого экземпляра остается прежний идентификатор. Раздельные каталоги данных (snapshot.dir, wal.dir, vinyl.dir) утилита tt теперь считывает из конфигурации кластера в централизованном хранилище. Отдельно передавать их сценарию больше не требуется.
  • Перед созданием полной резервной копии через механизм PITR сценарий playbooks/backup_pitr.yml теперь делает свежий снимок данных (tt backup start --snapshot). Благодаря этому базовый снимок полной копии содержит все экземпляры кластера, а не только тот, с которого кластер был запущен изначально. Такой снимок нужен для поэкземплярного восстановления. Поведение управляется новой переменной tarantool_pitr_backup_snapshot (по умолчанию true) и действует только для полных резервных копий (tarantool_pitr_backup_type: full).
  • Пропуск раздела с шардированием по умолчанию, если в инвентаре нет шардирования.
  • Пропуск пустого значения security.encryption-key в конфигурации TCM.
  • Безопасная схема обновления.
  • Доработан плагин для инвентарей TCS.
  • Управляющий экземпляр теперь выбирается перед конфигурированием, чтобы избежать сбоя при рендеринге имени.
  • Теперь при любой ошибке в кластере (отсутствует активный координатор, ошибка etcd CAS «Compare failed», превышено время ожидания при повышении (promote) экземпляра, и т.д.) делается повторная попытка назначения лидера (force_leaders).
  • Доработан инвентарь для CDC: в инвентарь добавлена автогенерация replication.id, реализована динамическая генерация обработчиков CDC (переменные shard_per_worker и shards_per_instance).
  • Доработаны настройки безопасности для TCM.
  • Устранено падение tcf install при повторном вызове install.
  • Устранены ошибки в генерации инвентаря для TCF.
  • Исправлена обработка Jinja-шаблонов в секции servers генератора инвентаря.
  • Обновлено требование к новой версии Python для дистрибутива Мос.ОС.
  • Чтение конфигурации ролей из файла config.group.roles_cfg (ранее настройки ролей могли применяться некорректно).
  • Функция редактирования топологии edit_topology.
  • Процесс создания резервных копий миграций TDB из хранилища etcd.
  • Генератор инвентаря для TCF при работе с etcd и хранилищем на основе Tarantool.
  • Проблема с наследованием replicaset_alias при удалении экземпляров (теперь псевдоним передаётся корректно).
  • Удалённые экземпляры больше не возвращаются в etcd во время процесса очистки.
  • Скрипт postrotate утилиты logrotate для приложений Tarantool версии 3.
  • Логика по умолчанию (default()) в переменных tt_config_storage (исправлена инверсия условий).
  • Шаг подготовки (prepare) в дистрибутивах RedOS и MosOS для корректной работы с pip3.
  • Обработка TT_CONFIG_ETCD_SSL_CA_PATH в systemd роли.
  • Файл юнита systemd для корректного развёртывания на CentOS 7.
  • Добавлены настраиваемые лимиты ресурсов в systemd как альтернатива PAM.
  • Добавлена проверка наличия tarantool_etcd_host при отправке конфигурации в etcd.
  • Резервное копирование префиксов etcd для TCF.
  • Определение cluster_name и cartridge_app_name в генераторе инвентаря.
  • Удаление последнего сервера из зоны.
  • Добавлен параметр resolve_jinja в tcm_helpers для корректного разрешения ссылок на константы в initial_clusters.
  • TLS-настройки etcd для initial_clusters теперь выводятся из схемы; добавлена переменная tcm_etcd_schema.
  • В генератор инвентаря добавлены параметры tcm_cluster_display_name и tcm_cluster_id.
  • Генератор корректно выставляет порты.
  • Флаги username/password в tt.
  • Параметр restart_instance для install_3_0 на работающем кластере.
  • cdc_java_extra_arguments теперь корректно размещается перед -jar.

Узнать больше можно в документации ATE, в разделе ATE 1.22.

[3.2.0] - 2026-07-30

Релиз Tarantool Database 3.2.0 включает обновления платформы, модулей и документации, а также других продуктов на основе Tarantool. Ниже кратко описаны ключевые изменения и требования к обновлению. Подробная информация о наиболее заметных изменениях и новой функциональности в релизе приведена в разделе Tarantool Database 3.2.

Чтобы обновить Tarantool Database 3.1.1 до версии 3.2.0, выполните штатное обновление продукта до версии 3.2.0. При обновлении с простоем после завершения обновления необходимо вызвать команду tt replicaset upgrade для обновления системных спейсов.

При обновлении Tarantool DB до версии 3.2.0 Tarantool Cluster Manager (TCM) обновляется до версии 1.10.0. Переход на эту версию требует дополнительных шагов при обновлении Tarantool DB. Соответствующая инструкция по обновлению Tarantool DB вместе с TCM приведена в разделе Обновление Tarantool Database.

Обновления Tarantool DB

Обновления платформы и инструментов

Tarantool Enterprise SDK обновлён до версии gc64-3.7.1-0-r91:

  • vshard обновлён до 0.1.33. Повышена отказоустойчивость vshard: router и storage теперь могут выбрать новый мастер-узел, даже если прежний мастер-узел перестал отвечать.
  • tt-ee обновлён до 2.13.0. Исправлен импорт из CSV — import больше не приводит к ошибке при разборе типа any в map/array.

Tarantool Cluster Manager (TCM) 1.9.0 → 1.10.0

Версия 1.10.0

Добавлено:

  • restore: добавлен псевдоним etcd-restore.

  • bootstrap: поддержка полной настройки в YAML-конфигурации при первичной инициализации (bootstrap), включая кластеры, политики безопасности и права пользователей (в том числе конфигурацию LDAP, парольные политики, списки управления доступом ACL) в initial-settings. При создании Default Cluster запрещено использовать ID 00000000-0000-0000-0000-000000000000 в initial-settings.clusters. Если этот ID необходим — укажите default-cluster: false, иначе кластер не будет распознан TCM.

  • stateboard: кольцевая диаграмма статусов здоровья узлов-обработчиков Tarantool DB (healthy/degraded/unhealthy/stale).

  • config: валидация YAML-конфигурации TCM, ошибки содержат путь до проблемного поля.

  • auth: принудительная смена пароля администратора при первом входе после первичной инициализации. Опцию можно включить тремя способами: через переменную окружения TCM_SECURITY_REQUIRE_BOOTSTRAP_PASSWORD_CHANGE=true, через параметр командной строки --security.require-bootstrap-password-change, либо в YAML-конфигурации TCM:

    security:  require-bootstrap-password-change: true
  • user: создание пользователя с заданным ID в initial-settings.

Изменено:

  • config: синхронизированы tcm.example.yml и вывод tcm generate-config. В генерируемую конфигурацию добавлен раздел initial-settings с примерами параметров кластеров, пользователей, ролей и журнала аудита.

  • stateboard: улучшена обработка состояния stale: теперь stale-статусы приоритетнее ошибок, они отображаются как warnings и не влияют на счётчики ошибок и предупреждений на родительских элементах.

  • stateboard: при статусе running цвет наличия ошибок изменён с красного на оранжевый, ошибки перенесены во вкладку Warnings.

  • user: при удалении пользователя удаляются права, связанные с ACL (Access Control List).

  • storage: изменён формат хранения подписи объектов TCM. Если вы обновляетесь с предыдущих версий на 1.10.0, необходимо один раз выполнить переподписание данных в хранилище на основе Tarantool (или etcd) новым ключом, иначе TCM не запустится из‑за ошибки верификации подписи:

    ./tarantool-cluster-manager resign-data
  • addon: поле addon стало опциональным.

  • backup/restore: команды backup/restore сняты с поддержки. Для резервного копирования используйте export config, затем запускайте TCM с экспортированной конфигурацией.

Исправлено:

  • explorer: исправлена ошибка “cluster not found” при открытии спейса без индекса.
  • stateboard: диаграмма миграций использует только последнюю сохранённую миграцию и корректно окрашивается по её статусу.
  • cluster: исправлено обнаружение кластера после старта на другом узле хранилища и перезапуска.
  • cluster: исправлена ошибка при отключении кластера.
  • bootstrap: исправлена валидация при создании сущностей в секции конфигурации initial-settings.
  • cluster: скорректировано поведение с ключом draft при выполнении resign-data.
  • config: исправлена ошибка при наличии пустых полей в конфигурации.
  • storage: исправлен фильтр прав при редактировании.
  • storage: добавлена защита целостности — при несанкционированных изменениях на узле хранилища TCM блокируется и показывает ошибку.
  • storage: добавлен декодер паролей для безопасной аутентификации при операциях с кластером.

Версия 1.9.1

Исправлено:

  • Ошибка в модуле миграций, при которой статус миграции не записывался или не отображался корректно после неудачной попытки. Исправление обеспечивает точное отслеживание состояния и надежность рабочего процесса.
  • Отсутствие статуса миграции, примененной после ошибки в процессе миграции.

Версия 1.9.0

Добавлено:

  • Возможность подключения к экземплярам кластера через iproto.listen.uri.
  • Создание пользователей и ролей при первом запуске TCM через поле initial-settings в конфигурации (роли могут создаваться с ID и без).
  • Добавление индикаторов роутера для ошибок vshard во вкладке Stateboard.

Исправлено:

  • Ошибка подключения к хранилищу миграций, если конфигурации кластера и TCM находятся в разных хранилищах.
  • Некорректное применение пароля при тестировании подключения (Test connection) при создании или обновлении кластера.

Tarantool Clusters Federations (TCF) 0.12.0 → 0.12.1

Добавлено:

  • bucket_map_cache_ttl — поле в конфигурации Destination, позволяющее настраивать время жизни кэша карты сегментов (bucket map) в роутере.
  • router_quorum и storage_quorum_per_replicaset — новые параметры в конфигурации TCF-координатора, позволяющие настраивать кворумы для маршрутизации и хранения.

Исправлено:

  • Исправлен запуск шардированной группы с несколькими экземплярами gateway: ранее группа экземпляров не стартовала без префикса хранилища состояния (state provider).
  • В конфигурации etcd для репликаторов больше не требуется указывать схему в адресе хоста (например, http:// или https://).
  • Кеширование карты сегментов в роутере. По умолчанию время жизни кэша — 10 секунд.
  • Возможный бесконечный цикл при обработке пользовательских ограничений.
  • Ложные предупреждения при захвате флага /coordinator/lock. Предупреждения стали более информативными и не вводят в заблуждение.
  • Избыточный запрос на получение UUID набора реплик при подключении репликаторов к хранилищу конфигурации на основе Tarantool.

Узнать больше можно в документации TCF, в разделе TCF 0.12.0.

Обновления модулей

cooler 0.1.2 → 0.1.3

Добавлено:

  • Метод cooler.locate() — определяет текущее местоположение данных по первичному ключу (memtx или vinyl).
  • Сводные метрики для спейсов под архивацию данных (memtx/vinyl): cooler_memtx_bytes_total, cooler_vinyl_bytes_total, cooler_memtx_tuples_total и cooler_vinyl_tuples_total.
  • Поле memtx_bytes_count — размер memtx-спейса в байтах в выводе cooler.info().

Исправлено:

  • Проблема со спейсом _cool_for_delete, который теперь создается как временный. Это предотвращает возникновение проблем типа split-brain при охлаждении синхронных спейсов. Термин split-brain в контексте распределенных систем означает ситуацию, когда узлы системы теряют согласованность и начинают работать с разными данными. В этом случае временный спейс решает эту проблему.
  • Некорректная регистрация шардированного ключа для спейсов vinyl в шардированных окружениях.

crud 1.7.4 → 1.7.5

Добавлено:

  • В системные спейсы crud.schema добавлен спейс _recovery_point, представленный в предстоящей версии Tarantool 3.8.
  • Метод crud.locate() — позволяет определить, в каком движке (memtx или vinyl) находится кортеж по первичному ключу. Работает только при использовании модуля cooler.
  • Поддержка опций mode, balance, prefer_replica и request_timeout в методе crud.len().

Исправлено:

  • Операции чтения (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-export-role 0.4.0 → 0.4.1

Добавлено:

  • Реализована возможность экспорта метрик в формате Graphite.
  • Добавлена поддержка протокола Graphite.

Исправлено:

  • Убрана строгая зависимость от metrics 1.7.0, даже если Graphite не используется. Актуально для версий Tarantool до 3.7.0, где модуль metrics ещё не полностью поддерживает Graphite.

[3.1.1] - 2026-04-10

SDK обновлён до версии gc64-3.6.2-0-r89:

  • tt CLI обновлён до версии EE 2.12.0. TCM обновлён до версии 1.8.0. TCF обновлён до версии 0.11.3.
  • Обновлены модули:
    • crud 1.7.4;
    • vshard 0.1.40.
  • Изменена документация:
    • Исправлена ошибка в примере dictionary_example.md: удалена дублирующаяся запись с ID=2.
    • В конфигурационные файлы TCM во всех примерах добавлена поддержка параметра tuples.

[3.1.0] - 2026-02-09

SDK обновлён до версии 3.6.1-0-r86:

  • tt CLI обновлён до версии EE 2.11.1. TCM обновлён до версии 1.6.0. TCF обновлён до версии 0.11.0.
  • Добавлены модули:
    • healthcheck-role 0.1.1.
  • Обновлены модули:
    • crud 1.7.3;
    • dictionary 2.3.5;
    • metrics-export-role 0.3.2;
    • vshard 0.1.39.
  • Доработана документация:
    • Добавлен раздел про обновление схемы БД в кластере.
    • Добавлен раздел про понижение версии схемы БД в кластере.
    • Добавлен пример по обновлению схемы через tt CLI.
    • Добавлен пример работы со словарями через пользователя с ограниченными правами и использованием команд tt export и tt import.
    • Добавлен пример реализации узлов-обработчиков (workers) на языке Go.
  • Обновлен дашборд для Grafana:
    • Добавлена панель Tarantool schema needs upgrade status.
    • Добавлены панели Safe mode status и Router cache last cleared для CRUD.

[3.0.0] - 2025-09-30

  • Добавлены модули:
    • cooler 0.1.1.
  • Обновлены модули:
    • crud 1.6.1;
    • expirationd 1.7.0;
    • vshard 0.1.36.
  • SDK обновлен до версии 3.4.1-0-r70:
    • tt CLI обновлён до версии EE 2.10.1.
  • TCM обновлен до версии 1.5.0.
  • TCF обновлен до версии 0.9.1.
  • Доработана документация:
    • Добавлен пример использования спейсов vinyl.
    • Добавлен пример по охлаждению данных с помощью библиотеки cooler.
    • Добавлены практические рекомендации по настройке параметров движка vinyl.
    • Пример vinyl обновлён под новый crud API с заполнением bucket_id.
    • Обновлены дашборды и примеры мониторинга (Grafana, Prometheus).
    • Уточнена документация и исправлены примеры конфигурации для роли метрик (metrics-export).
    • Добавлена документация по мониторингу.
    • Добавлены рекомендации по работе с space upgrade.
    • Добавлены рекомендации по дедупликации неидемпотентных запросов.
    • Добавлен справочник для модуля cooler.
    • Добавлено руководство по обновлению с Tarantool DB 2.x на версию 3.0.
Была ли статья полезна?