Журнал изменений¶
В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool Clusters Federation. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
[0.9.0] - 04-07-2025¶
В этом релизе представлена интеграция с Keycloak для авторизации HTTP API.
Кроме того, релиз содержит несколько важных исправлений, включая обработку операции truncate
.
Добавлено¶
Поддержка сборки с TDG 2.13.
Параметр
dial_timeout
в конфигурации Destination для подключения к Gateway.Поддержка авторизации через Keycloak для технологической роли TCF-worker.
Поддержка авторизации через Keycloak для Gateway и Destination.
Поддержка внутренних HTTP API вызовов при включенной авторизации.
Статус
stopped
для Destination.
Изменено¶
vshard-ee обновлен до версии 0.1.33 для
tcf-tarantool3-role
.[Breaking change]: удалена поддержка частичного
truncate
в шардированном кластере. Операцииtruncate
должны выполняться на каждом шарде отдельно, как вcrud.truncate
. Каждая транзакцияtruncate
должна быть отдельной операцией.
Исправлено¶
Репликация для запросов
update
/upsert
с оператором удаления#
.Репликация для запросов
update
/upsert
с операцией строкового сращивания:
.Зависание Destination при неудачном подключении к Gateway.
Репликация становилась двунаправленной после перезагрузки репликатора.
Destination не будет завершаться с ошибкой при переподключении к Gateway, если было потеряно соединение хотя бы с одним исходным экземпляром кластера.
truncate
мог приводить к конфликтам данных.Частичное применение
truncate
не завершалось после перезапуска.
[0.8.0] - 08-04-2025¶
В этом релизе представлены метрики компонентов и Grafana дашборд для мониторинга.
Добавлено¶
Метрики vclock signature для Gateway, Destination и TCF-worker.
Сбор метрик по статусам ответов HTTP API Gateway, Destination и TCF-worker.
Метрика информации об имени приложения у репликаторов.
Поле
alias
в конфигурации для репликаторов.alias
для каждой метки метрик репликаторовОбновление
cdc-sdk
, перенесённого на библиотекуgo-replica
из GitLab.
Исправлено¶
Работа метрик компонентов Gateway и Destination.
Стиль меток метрик компонентов Gateway и Destination.
Сборка Tarantool 3 rock в части хранения конфигурации.
CVE-2025-30204 в JWT-клиенте etcd.
Разыменование nil при запуске HTTP API Gateway и Destination.
[0.7.1] - 12-03-2025¶
В этом релизе представлены несколько исправлений, связанных с конфигурацией, процессом репликации и мониторингом.
Исправлено¶
"Empty replicaset" signature
в ответе статуса после очистки спейса или повторной инициализации.Ошибка при пустой конфигурации технологической роли
roles.tcf-coordinator
.В случае конфигурации с vshard, событие от активного кластера будет отправлено во все наборы реплик пассивного кластера, если у спейса нет параметра
bucket_id
.Уточнена ошибка при неинициализированном HTTP-сервере.
[0.7.0] - 26-02-2025¶
В этом релизе добавлена полноценная поддержка спейсов с синхронной репликацией и проведены существенные доработки журналирования.
Добавлено¶
Поддержка работы с
WAL extensions
.Отслеживание
owner id
исходного набора реплик.Отслеживание подтверждённого
vclock
от исходного набора реплик.Восстановление состояния очереди лимба после перезапуска.
Изменено¶
Формат записей журнала Gateway и Destination теперь основан на видоизменённом формате
log/slog
вместо стандартногоgo.uber.org/zap
.Возвращение явной ошибки при некорректной конфигурации логгера.
Исправлено¶
Утечка памяти из Gateway из-за незавершённых горутин.
Используется только первый узел из конфигурации Tarantool config storage в качестве хранилища состояния.
promote
: не удаётся поменять статус активного кластера, если пассивный кластер недоступен.promote
: не удаётся выполнить, если оба кластера являются пассивными.
[0.6.1] - 31-01-2025¶
Изменено¶
Завершение работы с ошибкой, если лимб получает асинхронные записи, пришедшие не от текущего владельца очереди, после выполненного
promote
.Отключены повторные попытки
bootstrap
на нижнем уровне.
Исправлено¶
Устранена потеря последних событий снимка состояния, возникавшая из-за состояния гонки.
Удалён параметр
MaxReconnects
у коннектора: если роутер долго был отключён, соединение было невозможно переиспользовать.Выбор роутера в Destination стал предсказуемым.
После повторного подключения Destination к Gateway, Destination начинал получать данные не с того места, где остановился, а с самого начала потока репликации.
Ошибка восстановления
replicaset pusher
в Destination игнорировалась.Исправлена ошибка, из-за которой Destination мог завершаться сбоем при одновременной обработке транзакций.
Устранены ложные сообщения
Signature mismatch
при параллельных транзакциях отsource replicaset
.Лимб неподтвержденных транзакций не обрабатывал поток репликации с асинхронными записями
WAIT_SYNC
, записанными послеRAFT_CONFIRM
.Ошибки потока на стороне Gateway не обрабатывались.
Ошибки запуска Destination не обрабатывались.
[0.6.0] - 19-12-2024¶
Добавлено¶
Поддержка работы без использования
vshard
.Поддержка IPROTO-запроса
InsertArrow
.Поддержка работы с синхронными спейсами.
Изменено¶
Параметры хранилища конфигурации на основе Tarantool теперь полностью соответствуют формату конфигурации Tarantool.
Исправлено¶
Поведение проверки доступности (health check) для Tarantool 3.3.
[0.5.0] – 22-11-2024¶
Устарело¶
Поле
destination.gateway
в конфигурации межкластерных репликаторов данных. Рекомендуется использоватьdestination.gateways
.
Добавлено¶
Примеры репликации TCF между кластерами Tarantool Cartridge и Tarantool 3.x EE с использованием etcd и хранилища конфигурации и состояния на основе Tarantool.
Поддержка TLS для gRPC-соединения между Gateway и Destination.
Пошаговое руководство по миграции с
Cartridge + Cartridge
наTarantool 3 + Tarantool 3
с etcd и Tarantool Config Storage.Поддержка TLS в HTTP API у Gateway и Destination.
Поддержка группы экземпляров Gateway для Destination.
Изменено¶
Destination может работать без
vshard
.Ошибки при обнаружении бакетов в Cartridge теперь не просто записываются в журнал, а обрабатываются – например, срабатывает повторная попытка или выдается понятное сообщение об ошибке.
Если для уже работающего кластера поменять хранилище состояний на новое (пустое), то последнее известное состояние кластера будет записано в это хранилище.
Пакет
etcd-client
включён вtcf-cartridge-role-scm-1.rockspec
.Обновлена версия модуля
http
до1.7.0
.
Исправлено¶
Ложная ошибка в Destination при
bucketID - 1 == bucketCount
.Кластерные координаторы Tarantool 3.x игнорировали параметры
storage
иstorage_params
.Возможная ошибка сегментации при вызове метода
GetEvents
у Gateway.
[0.4.0] - 22-10-2024¶
Добавлено¶
mage
теперь автоматически увеличивает лимит открытых файлов в системе перед запуском тестов. Добавлена подсказка, как сделать это вручную.Возможность изменить префикс хранилища с
/tcf
на любой другой через параметрstorage_params.prefix
в конфигурации ролей кластера.Флаг командной строки
--version
для бинарных файлов Destination и Gateway.
Изменено¶
Gateway теперь передаёт кортежи без поля
bucket_id
.Обновлена CI для сборки и публикации документации:
документация из ветки
master
собирается только для тестового сайта, на сайтtarantool.io
документация не публикуется;для версии
latest
на основном сайте переключена ветка сmaster
наrelease-0.2.x
;добавлен процесс удаления старых сборок документации.
Добавлена возможность настроить хранение etcd_v2 для Cartridge через
storage: etcd_v2
и секциюstorage_params
в конфигурации ролей кластера, еслиfailover etcd
не настроен.
Исправлено¶
Отображение версии для Destination, Gateway и ролей.
[0.3.1] - 04-10-2024¶
Добавлено¶
Пример репликации TCF между кластерами Tarantool Cartridge и Tarantool 3.x EE.
Отчёт по покрытию кода тестами в CI и команды
mage
с разными скриптами для сбора информации о покрытии.Поддержка интеграции
roles.httpd
для кластера Tarantool 3.x EE;Тесты с использованием хранилища на основе Tarantool в качестве хранилища состояний.
Изменено¶
Вывод тестов теперь сохраняется в файл.
Не генерируется
TRUNCATE
при обработке снимка состояния.Метрика
worker stopped
устанавливается только когда TCF-worker действительно остановлен.Для новых наборов реплик всегда начинается загрузка снимка состояния.
Обработка
xlog
начинается только после завершения процесса загрузки снимка состояния.Используется конфигурация для проверки, является ли экземпляр роутером или хранилищем шарда.
В тестах для Tarantool 3 добавлено ожидание готового vshard.
Технологические роли TCF перемещены в репозиторий
cluster-federation
.
Исправлено¶
Работа с конфигурацией etcd/хранилища на основе Tarantool, заданной через переменные окружения.
Ошибки
golangci
теперь учитываются в CI-пайплайнах.Ложные сообщения об ошибке «Signature mismatch» в записях журнала Destination.
Потеря последнего события снимка состояния (snapshot) из-за состояния гонки.
Ошибка при запуске bootstrap с реплик хранилища.
Ошибка переключения кластера сразу после предыдущего переключения.
[0.3.0] - 09-09-2024¶
Добавлено¶
Документация.
Поддержка хранилища состояния etcd v3.
Поддержка хранилища состояния на основе Tarantool.
Технологические роли TCF для Tarantool 3.x;
Поддержка Tarantool 3.x в компонентах Gateway и Destination;
Пример конфигурации кластера Tarantool 3.x.
Изменено¶
Добавлены дополнительные проверки для разных случаев, когда результат недействителен.
Пропуск загрузки схемы при подключении.
Корректная проверка состояния участника кластера Cartridge.
Плавное переключение (toggle) происходит только если есть связь с кластером.
Исправлено¶
Состояние гонки при инициализации.
Кластер, который был пассивным, снова может стать активным.
Проверка статуса набора реплик.
Блокировки etcd v2 и v3.
Проверка синхронности.
Перевод в активное состояние предварительно пассивного кластера.
Настройка DML-пользователей при остановке.