Tarantool DB 2.0¶
Дата релиза: 19.09.2024.
Релиз Tarantool DB 2.0 основан на Tarantool 3.x. В этом релизе добавлена поддержка централизованного хранилища конфигураций и Tarantool Cluster Manager, значительно обновлен модуль словарей, а также добавлены новые запускаемые примеры. В документе приведен краткий обзор наиболее заметных изменений и новой функциональности.
-
Запуск кластера без централизованного хранилища;
Запуск кластера Tarantool DB в качестве централизованного хранилища конфигураций;
JSON-пути;
Разработка модулей Community Edition –
crud
,vshard
иexpirationd
– теперь поддерживается только сообществом. Разработка указанных модулей силами команды Tarantool продолжается в Enterprise-версиях этих модулей. В названия модулей добавлен суффикс-ee
:crud → crud-ee 1.7.0;
expirationd → expirationd-ee 1.8.0;
vshard → vshard-ee 0.1.28;
В Docker-образе изменена директория с файлами Tarantool DB. Теперь файлы хранятся в директории
/app/tarantooldb/
.
Подробная информация о продукте приведена в документации 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 приведена в документации 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, есть только два способа загрузки конфигурации в кластер:
с помощью утилиты tt CLI;
через веб-интерфейс Tarantool Cluster Manager.
Начиная с 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.router
→roles.dictionary-router
;dictionary.roles.storage
→roles.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() – выполнить асинхронную попытку оповестить ближайший доступный экземпляр о новых данных;
Добавлены опции конфигурации словарей:
update_instances_list_period – частота обновления списка узлов;
connect_timeout – время ожидания установки соединения в секундах;
Удалена опция конфигурации словарей
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.