Журнал изменений¶
В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool Clusters Federation. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
[0.10.0] - 30-09-2025¶
Добавлена поддержка перезагрузки конфигурации репликаторов по сигналу SIGHUP, включая совместимость с logrotate.
Также в состав архива TCF добавлена панель Grafana.
Добавлено¶
Панель Grafana включена в пакет TCF.
Корректная обработка сигнала SIGHUP в репликаторах.
Поддержка использования нескольких экземпляров Gateway в качестве источников репликации кластера.
Новая опция конфигурации
gateway_clustersдля Destination.Поддержка профилирования репликаторов через пакет
net/http/pprof.Параметр конфигурации
shardsдля Destination.Параметр конфигурации
destination_connect_timeoutдля Gateway.Поддержка использования нескольких экземпляров Destination как получателей репликации.
Изменено¶
Пакет
tcf-tarantool3-roleтеперь использует версию модуляvshardвместоvshard-ee.
Исправлено¶
Причина нездоровья кластера теперь журналируется, даже если кластер сразу инициализируется в статусе
unhealthyбез перехода состояния.Ошибка на вкладке Settings в веб-интерфейсе Cartridge при пустых конфигурационных полях.
Нарушение метрик
tcf-workerпосле перезапуска репликатора с повторной инициализацией (rebootstrap).
[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-пользователей при остановке.