Журнал изменений¶
В этом документе содержится хронологически упорядоченный список изменений, внесенных в Tarantool Clusters Federation. Формат журнала изменений основан на документе Keep a Changelog, а версионирование следует правилам Semantic Versioning.
[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
в ответе статуса после очистки спейса или повторной инициализации;Ошибка при пустой конфигурации роли
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 EE с использованием etcd и Tarantool Config Storage;
Поддержка 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 игнорировали параметры
storage
иstorage_params
;Возможная ошибка сегментации при вызове метода
GetEvents
у Gateway.
[0.4.0] - 22-10-2024¶
Добавлено¶
mage
теперь автоматически увеличивает лимит открытых файлов в системе перед запуском тестов. Добавлена подсказка, как сделать это вручную;Возможность изменить префикс хранилища с
/tcf
на любой другой через параметрstorage_params.prefix
в конфигурации ролей кластера;Флаг командной строки
--version
для бинарников Destination и Gateway.
Изменено¶
Gateway теперь передаёт кортежи без поля
bucket_id
;Обновлена CI для сборки и публикации документации:
документация из ветки
master
сначала собирается на тестовом сайте, на основной сайт не публикуется;для версии
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 EE;
Отчёт по покрытию кода тестами в CI и команды
mage
с разными скриптами для сбора информации о покрытии;Поддержка интеграции
roles.httpd
для кластера Tarantool 3 EE;Тесты с использованием Tarantool Config Storage как хранилища состояний.
Изменено¶
Вывод тестов теперь сохраняется в файл;
Не генерировать
TRUNCATE
при обработке снимка состояния;Метрика
worker stopped
устанавливается только когда TCF-worker действительно остановлен;Для новых наборов реплик всегда начинается загрузка снимка состояния;
Обработка
xlog
начинается только после завершения процесса загрузки снимка состояния;Используется конфигурация для проверки, является ли экземпляр роутером или хранилищем шарда;
В тестах для Tarantool 3 добавлено ожидание готового vshard;
Роли TCF перемещены в репозиторий
cluster-federation
.
Исправлено¶
Работа с конфигурацией etcd/TcS, заданной через переменные окружения;
Ошибки
golangci
теперь учитываются в CI-пайплайнах;Ложные сообщения об ошибке «Signature mismatch» в записях журнала Destination;
Потеря последнего события снимка состояния (snapshot) из-за состояния гонки;
Ошибка при запуске bootstrap с реплик хранилища;
Ошибка переключения кластера сразу после предыдущего переключения.
[0.3.0] - 09-09-2024¶
Добавлено¶
Документация;
Поддержка хранилища состояния etcd v3;
Поддержка хранилища состояния Tarantool Config Storage;
Роли TCF для Tarantool 3;
Поддержка Tarantool 3 в компонентах Gateway и Destination;
Пример конфигурации кластера Tarantool 3.
Изменено¶
Добавлены дополнительные проверки для разных случаев, когда результат недействителен;
Пропуск загрузки схемы при подключении;
Корректная проверка состояния участника кластера Cartridge;
Плавное переключение (toggle) происходит только если есть связь с кластером.
Исправлено¶
Состояние гонки при инициализации;
Кластер, который был пассивным, снова может стать активным;
Проверка статуса набора реплик;
Блокировки etcd v2 и v3;
Проверка синхронности;
Перевод в активное состояние предварительно пассивного кластера;
Настройка DML-пользователей при остановке.