Tarantool DB 2.0 | Tdb

Tarantool DB 2.0

Дата релиза: 19.09.2024.

Релиз Tarantool DB 2.0 основан на Tarantool 3.x. В этом релизе добавлена поддержка централизованного хранилища конфигураций и Tarantool Cluster Manager, значительно обновлен модуль словарей, а также добавлены новые запускаемые примеры. В документе приведен краткий обзор наиболее заметных изменений и новой функциональности.

Подробная информация о продукте приведена в документации Tarantool DB.

Поддержка Tarantool 3.x

Релиз Tarantool DB 2.0 основан на Tarantool 3.2. Это означает, что Tarantool DB 2.0 поддерживает веб-интерфейс Tarantool Cluster Manager и новый подход к конфигурации кластера. Теперь вы можете задать полную топологию кластера с помощью декларативной YAML-конфигурации и хранить все данные конфигурации в едином месте.

До версии Tarantool DB 2.0 конфигурация хранилась на каждом экземпляре кластера и обновлялась кластерной транзакцией. Начиная с версии Tarantool DB 2.0, поддерживается использование централизованного хранилища конфигураций. Данные конфигурации при этом хранятся в едином месте – в хранилище на базе etcd или Tarantool. Все изменения конфигурации экземпляры кластера получают из этого централизованного хранилища. Новый способ хранения позволяет строить большие кластеры, делает более удобным управление master-узлами и отслеживание состояния основного кластера.

Веб-интерфейс Tarantool Cluster Manager

Начиная с Tarantool DB 2.0, в качестве веб-интерфейса кластера Tarantool DB используется Tarantool Cluster Manager, или TCM. Tarantool Cluster Manager – это административная панель для настройки и отслеживания кластеров, а также управления ими. TCM поддерживает только те кластеры Tarantool EE, которые используют централизованное хранилище конфигураций на базе etcd или Tarantool.

TCM позволяет выполнять широкий спектр задач, в их числе:

  • управление несколькими кластерами одновременно;

  • создание и изменение конфигурации кластера;

  • выполнение команд в интерактивном режиме на конкретных экземплярах;

  • отслеживание статуса кластеров и отдельных экземпляров;

  • управление доступом на основе ролей;

  • LDAP-авторизация.

Интерфейс TCM

Подробная информация о TCM приведена в документации Tarantool.

Переход с 1.x на 2.0

В Tarantool DB 2.0 внесен ряд заметных изменений в сравнении с версиями 1.x:

Изменения в работе словарей, внесенные в Tarantool DB 2.0, описаны отдельно в разделе Обновленный модуль dictionary.

Примечание

Перед обновлением на Tarantool DB 2.0 необходимо установить Tarantool DB 1.2.1. Узнать о том, как обновиться с Tarantool DB 1.2.1 на версию 2.0, можно в разделе Обновление Tarantool DB с версий 1.x до 2.x.

Конфигурация кластера

Начиная с Tarantool DB 2.0, есть только два способа загрузки конфигурации в кластер:

Начиная с Tarantool DB 2.0, обновление конфигурации через HTTP API или Lua API недоступно.

Узнать больше о конфигурации кластера можно в разделе Конфигурация кластера и в документации Tarantool.

Клиентские утилиты

Начиная с версии Tarantool DB 2.0, изменились процессы запуска кластера и миграций. Клиентские утилиты, которые использовались для этих целей до версии 2.0.0, устарели и были удалены. Удаленные утилиты:

  • bootstrap.sh – настройка топологии кластера. В Tarantool DB 2.0 настроить топологию кластера можно через централизованную конфигурацию. Топология кластера указывается в конфигурации и применяется сразу после запуска узлов кластера. Дополнительных действий при этом не требуется;

  • migrate.sh – загрузка и применение миграций. Начиная с Tarantool DB 2.0, для загрузки и применения миграций вместо migrate.sh используется утилита tt CLI или TCM;

  • health_check.sh – проверка здоровья кластера. Скрипт был нужен для утилит migrate.sh и bootstrap.sh;

  • java_make_settings.sh – создание файла конфигурации для загрузки Java-коннектора. Начиная с версии 2.0, загрузить Java-коннектор с сайта Tarantool можно с помощью утилиты download_java_tarantool.sh.

Утилиты, добавленные в Tarantool DB 2.0:

  • wait_config_ready.sh – ожидание окончания загрузки конфигурации;

  • wait_etcd_ready.sh – ожидание готовности узла etcd-кластера;

  • wait_instance_ready.sh – ожидание готовности узла кластера Tarantool DB;

  • download_java_tarantool.sh – загрузка Java-коннектора с сайта tarantool.io.

Настройка шардирования

Начиная с Tarantool DB 2.0, удалены технологические роли vshard-router и vshard-storage. Теперь для настройки модуля шардирования используется раздел sharding в конфигурации кластера.

Пример

      roles: [sharding]

iproto:
  advertise:
    peer:
      login: replicator
    sharding:
      login: storage

sharding:
  bucket_count: 30000

Обновленный модуль dictionary

В Tarantool DB 2.0 обновлен модуль для работы со словарями – таблицами, хранящими одинаковые данные на разных узлах кластера. Модуль обновлен до версии 2.3.2. Начиная с Tarantool DB 2.0, в работу словарей внесены следующие изменения:

  • Изменён подход к хранению ролей. Теперь имена ролей имеют вид roles.*. Для удобства перехода старые роли сохранены и имеют такую же функциональность, как и новые:

    • dictionary.roles.routerroles.dictionary-router;

    • dictionary.roles.storageroles.dictionary-storage;

  • Изменен формат названий методов модуля. Tarantool DB 2.0 поддерживает как новый формат названий методов API (dictionary_router_get()), так и старый (dictionary_router.get()). Методы, добавленные в версии 2.0, поддерживают оба формата названий. Сравнительная таблица названий методов в старом и новом форматах приведена в разделе Модуль dictionary;

  • Добавлены новые методы модуля dictionary:

    • dictionary_check_key_consistency() – вычислить хэш одного ключа для каждого узла со словарем;

    • dictionary_wait_key_consistency() – ждать, когда данные по ключу на всех узлах со словарями станут одинаковыми;

    • dictionary_notify_neighbors() – выполнить асинхронную попытку оповестить ближайший доступный экземпляр о новых данных;

  • Добавлены опции конфигурации словарей:

  • Удалена опция конфигурации словарей logging.

Методы модуля dictionary используются на узлах с включенной технологической ролью dictionary.roles.router или dictionary.roles.storage. Узнать больше о работе со словарями можно в разделе Начало работы с модулем dictionary.

Запускаемые примеры

Для удобства в Tarantool DB используются готовые примеры на основе Docker Compose, которые позволяют быстро запустить и попробовать ту или иную функциональность. В Tarantool DB 2.0 добавлены следующие запускаемые примеры:

Кластер Tarantool DB как централизованное хранилище конфигураций

Tarantool DB 2.0 поддерживает использование централизованного хранилища на базе Tarantool. Хранилище конфигураций на базе Tarantool – это набор реплик, который хранит конфигурацию кластера в синхронных спейсах. Узнать больше о хранилище конфигураций на базе Tarantool можно в документации Tarantool.

Этот способ развертывания кластера описан в новом примере tdb_as_config_storage. В примере запущены два кластера:

  • основной кластер Tarantool DB;

  • вспомогательный кластер Tarantool DB, который выступает в роли централизованного хранилища конфигураций.

Чтобы узлы в наборе реплик Tarantool действовали как хранилище конфигураций, для узлов задана технологическая роль config.storage. Конфигурация узлов при этом может выглядеть так:

groups:
  storages:
    roles:
      - config.storage
      - roles.metrics-export
    roles_cfg:
      config.storage:
        status_check_interval: 3

Запуск кластера без централизованной конфигурации

Tarantool DB 2.0 позволяет развернуть кластер Tarantool DB без централизованной конфигурации etcd или Tarantool. Попробовать такой способ запуска кластера можно в новом примере up_without_etcd. Работа через веб-интерфейс TCM при этом способе запуска недоступна. Для подключения к узлу и работы с данными используется утилита tt CLI.

JSON-пути

Tarantool DB 2.0 поддерживает обновление данных в спейсе с помощью JSON-путей. Инструкция по работе с JSON-путями приведена в новом запускаемом примере json_path.

Узнать больше о JSON-путях можно в соответствующем разделе документации Tarantool.

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