Ключевые изменения в Tarantool DB 2.x¶
В этом разделе описаны самые заметные изменения в Tarantool DB 2.x в сравнении с версиями 1.x. Узнать больше о новых возможностях Tarantool DB 2.0 можно в разделе Tarantool DB 2.0.
Содержание:
Конфигурация кластера¶
Начиная с Tarantool DB 2.0, есть только два способа загрузки конфигурации в кластер:
с помощью утилиты tt CLI;
через веб-интерфейс Tarantool Cluster Manager.
Начиная с версии 2.0, обновление конфигурации через HTTP API или Lua API недоступно.
Узнать больше о конфигурации кластера можно в разделе Конфигурация кластера и в документации Tarantool.
Клиентские утилиты¶
Начиная с версии Tarantool DB 2.0, существенно изменились процессы запуска кластера и миграций.
Клиентские утилиты bootstrap.sh
, health_check.sh
и migrate.sh
, которые применялись до версии 2.0, устарели и были удалены.
bootstrap.sh¶
До версии Tarantool DB 2.0, утилита применяла настройку топологии кластера. Начиная с версии 2.0, настроить топологию кластера можно через централизованную конфигурацию. Топология кластера указывается в конфигурации и применяется сразу после запуска узлов кластера. Дополнительных действий при этом не требуется.
health_check.sh¶
До версии Tarantool DB 2.0, утилита health_check.sh
использовалась для проверки здоровья кластера и была необходима для работы
bootstrap.sh
и migrate.sh
. Начиная с версии 2.0, утилиты bootstrap.sh
и migrate.sh
удалены, так что утилита health_check.sh
больше не требуется.
migrate.sh¶
До версии Tarantool DB 2.0, утилита использовалась для загрузки и применения миграций. Вызов утилиты выглядел так:
TARANTOOLDB_BOOTSTRAP_PATH=./bootstrap/ TARANTOOLDB_TARGET_URI=some-router:8081 \
TARANTOOLDB_HEADERS='Authorization: Bearer 123' ./migrate.sh
Здесь:
TARANTOOLDB_BOOTSTRAP_PATH
– путь к папкеbootstrap
, содержавшей папкуmigrations
;TARANTOOLDB_TARGET_URI
– адрес роутера, на который отправлялись команды;TARANTOOLDB_HEADERS
– заголовки запросов к кластеру.
Начиная с версии 2.0, для загрузки и применения миграций вместо migrate.sh
используется утилита tt CLI.
Загрузить миграции можно так:
tt migrations publish http://etcd1:2379/tdb ./migrations/
Здесь:
http://etcd1:2379/tdb
– адрес одного из узлов ETCD../migrations/
– папка с миграциями. Сценарии миграций должны храниться в папкеmigrations/scenario
. Пример файловой структуры:migrations/ └── scenario/ ├── 001_create_space_test1.lua └── 002_create_space_test2.lua
Для применения миграций теперь используется отдельная команда:
tt migrations up http://etcd1:2379/tdb --tarantool-cluster-username=admin --tarantool-cluster-password=secret-cluster-cookie
Здесь:
http://etcd1:2379/tdb
– адрес одного из узлов ETCD;admin
– имя пользователя кластера. Указанный пользователь должен обладать достаточными правами на применение миграций;secret-cluster-cookie
– пароль пользователя кластера.
Узнать больше о командах tt migrations
можно в документации Tarantool.
Модуль dictionary¶
В Tarantool DB 1.x подразумевается, что узел работает под тем же пользователем, что и подключаемый клиент. Пользователь при этом обладает полными правами. Этот функционал сохранён в Tarantool DB 2.0.
Начиная с Tarantool DB 2.0.0, в работу словарей внесены следующие изменения:
Изменён подход к хранению ролей. Теперь все имена ролей имеют вид
roles.*
. Для удобства перехода старые роли сохранены и имеют такую же функциональность, как и новые:Старая роль
Новая роль
dictionary.roles.router
roles.dictionary-router
dictionary.roles.storage
roles.dictionary-storage
Изменен формат названий методов модуля.
Примечание
Tarantool DB 2.x поддерживает как новый формат названий методов dictionary API (
dictionary_router_get()
), так и старый (dictionary_router.get()
). Методы, добавленные в версии 2.x, поддерживают оба формата названий.Вызвать метод в новом формате через tt CLI или в TCM во вкладке Terminal (
TT Connect
) можно черезbox.schema.func.call
, например:box.schema.func.call('dictionary_router_set', 'categories', '1', 'Shops')
Вызвать метод в старом формате можно напрямую, например:
dictionary_router_set('categories', '1', 'Shops')
Добавлены методы dictionary_notify_neighbors(), dictionary_wait_key_consistency() и dictionary_check_key_consistency().
Удалена опция конфигурации
dictionary.logging
.
Router API¶
После применения конфигурации кластера в узлах с ролью roles.dictionary-router
становится доступна
глобальная переменная dictionary_router
, которая содержит методы для вызова на роутере.
Ниже приведена сравнительная таблица названий методов в старом и новом форматах.
Старый формат |
Новый формат (2.x) |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Storage API¶
После применения конфигурации кластера в узлах с ролью roles.dictionary-storage
становится доступна
глобальная переменная dictionary
, которая содержит методы для вызова на хранилище.
Ниже приведена сравнительная таблица названий методов в старом и новом форматах.
Старый формат |
Новый формат (2.x) |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Настройка шардирования¶
Начиная с Tarantool DB 2.0, удалены технологические роли vshard-router
и vshard-storage
.
Теперь для настройки модуля шардирования используется раздел
sharding в конфигурации кластера.
Пример
roles: [sharding]
iproto:
advertise:
peer:
login: replicator
sharding:
login: storage
sharding:
bucket_count: 30000