Журнал изменений
В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool DB. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
Списки версий и изменений во встроенных модулях и зависимых компонентах приведены в соответствующих GitHub-репозиториях и на сайте Tarantool: Tarantool, TCM, TCF, crud, expirationd, healthcheck-role, metrics-export-role, vshard, tt.
Список версий Tarantool DB:
Релиз 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.
-
SDK обновлён до версии gc64-3.7.1-0-r91:
- tt CLI обновлён до версии EE 2.13.0. Исправлена ошибка парсинга CSV-файлов, при которой возникало сообщение
"can't parse any to map or array", если данные не соответствовали ожидаемому формату.
- tt CLI обновлён до версии EE 2.13.0. Исправлена ошибка парсинга CSV-файлов, при которой возникало сообщение
-
TCM обновлён до версии 1.10.0.
-
TCF обновлён до версии 0.12.1.
-
Обновлены модули:
- cooler 0.1.3;
- crud 1.7.5;
- metrics-export-role 0.4.1;
- vshard 0.1.40.
-
Обновления документации:
- В GitHub-репозиторий
tarantool/tarantooldb-examplesдобавлен запускаемый пример Нагрев и охлаждение данных: использование кэша кортежей vinyl, который демонстрирует работу кэша кортежей vinyl и его влияние на производительность чтения. - Добавлены рекомендации по настройке охлаждения и нагрева данных на vinyl и новый пример.
- Добавлен справочник методов CRUD. В частности, в справочнике описан метод
crud.locate(), доступный с 3.2.0. - Добавлен раздел документации про модель безопасности TDB и минимальные разрешения для типовых сценариев работы с TDB.
- Вынесены в отдельные разделы рекомендации и требования к работе с TDB, а также известные ограничения в продукте. Описанные ограничения распространяются на всю линейку версий TDB 3.x.
- В GitHub-репозиторий
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.
Добавлено:
-
restore: добавлен псевдонимetcd-restore. -
bootstrap: поддержка полной настройки в YAML-конфигурации при первичной инициализации (bootstrap), включая кластеры, политики безопасности и права пользователей (в том числе конфигурацию LDAP, парольные политики, списки управления доступом ACL) вinitial-settings. При создании Default Cluster запрещено использовать ID00000000-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-settingscluster: скорректировано поведение с ключомdraftпри выполненииresign-data.config: исправлена ошибка при наличии пустых полей в конфигурации.storage: исправлен фильтр прав при редактировании.storage: добавлена защита целостности — при несанкционированных изменениях на узле хранилища TCM блокируется и показывает ошибку.storage: добавлен декодер паролей для безопасной аутентификации при операциях с кластером.
Исправлено:
- Ошибка в модуле миграций, при которой статус миграции не записывался или не отображался корректно после неудачной попытки, что обеспечивало точный трекинг состояния и надежность рабочего процесса.
- Отсутствие статуса миграции, примененной после ошибки в процессе миграции.
Добавлено:
- Возможность подключения к экземплярам кластера через
iproto.listen.uri. - Создание пользователей и ролей при первом запуске TCM через поле
initial-settingsв конфигурации (роли могут создаваться с ID и без). - Добавление индикаторов роутера для ошибок vshard во вкладке Stateboard.
Исправлено:
- Ошибка подключения к хранилищу миграций, если конфигурации кластера и TCM находятся в разных хранилищах.
- Некорректное применение пароля при тестировании подключения (Test connection) при создании или обновлении кластера.
Добавлено:
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.
Добавлено:
- Метод [Сводные метрики](../../reference/api_reference/cooler#reference_lua-cooler-locate[text=cooler.locate()]} — определяет текущее местоположение данных по первичному ключу (memtx или vinyl).
- {linkto(../../admin_guide/monitoring/) для спейсов под архивацию данных (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.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. Теперь хранилище пропускает обращение к сегментам и регистрирует предупреждение об ограничении скорости обработки данных, указывающее на снижение безопасности перебалансировки во обновления без простоя.
Добавлено:
- Реализована возможность экспорта метрик в формате Graphite.
- Добавлена поддержка протокола Graphite.
Исправлено:
- Убрана строгая зависимость от
metrics1.7.0, даже если Graphite не используется. Актуально для версий Tarantool до 3.7.0, где модульmetricsещё не полностью поддерживает Graphite.
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.
- Исправлена ошибка в примере
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.
- Добавлена панель
- Добавлены модули:
- 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обновлён под новыйcrudAPI с заполнениемbucket_id. - Обновлены дашборды и примеры мониторинга (Grafana, Prometheus).
- Уточнена документация и исправлены примеры конфигурации для роли метрик (
metrics-export). - Добавлена документация по мониторингу.
- Добавлены рекомендации по работе с
space upgrade. - Добавлены рекомендации по дедупликации неидемпотентных запросов.
- Добавлен справочник для модуля
cooler. - Добавлено руководство по обновлению с Tarantool DB 2.x на версию 3.0.
- Добавлен пример использования спейсов