Журнал изменений | Clusters_Federation
Примечания к версиям Журнал изменений

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

В этом документе содержится хронологически упорядоченный список изменений, внесенных в 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-пользователей при остановке.

Нашли ответ на свой вопрос?
Обратная связь