Технологические роли в Tarantool DataBase
Технологические роли — это список модулей, обеспечивающих дополнительную функциональность. В Tarantool DB доступны следующие технологические роли:
- crud-router, crud-storage
- dictionary
- expirationd
- failover-coordinator
- slow_log
- space-explorer
- tcf-worker, tcf-coordinator, tcf-api
- tracing
- vshard-router, vshard-storage
Роли предоставляют IPROTO API для выполнения CRUD-операций (создание, чтение, обновление, удаление) на кластере. Совместно используются две роли:
crud-router— предоставление API CRUD-функций, которые можно вызвать через коннектор;crud-storage— выполнение CRUD-операций на хранилище.
Пример настройки роли crud приведен в разделе Локальная конфигурация кластера и экземпляра.
Полный список опций конфигурации для роли crud можно найти в Справочнике по конфигурации.
Поскольку сбор метрик возможен только на роутерах, для сбора метрик в CRUD используйте роль crud-router.
По умолчанию сбор метрик отключен, так как их работа снижает производительность:
- на 3-10% — при использовании локального драйвера;
- 5-15% — при использовании драйвера метрик. Этот драйвер используется по умолчанию;
- до 20% — при использовании метрик, которые содержат квантили.
Включайте метрики модуля CRUD:
- если требуется дополнительная информация в виде данных с этих метрик;
- если работа метрик CRUD не скажется на общей нагрузке системы.
Чтобы включить метрики на конкретном узле, сначала подключитесь к нужному узлу (роутеру):
tt connect admin:secret@localhost:3301
На роутерах модуль CRUD сразу доступен в глобальном окружении.
Чтобы проверить текущие настройки статистики, вызовите в терминале crud.cfg:
crud.cfg---- stats_quantiles: falsestats: truestats_driver: metrics...
Включить сбор метрик можно так:
crud.cfg{ stats = true }
Когда сбор данных метрик будет завершен, метрики необходимо отключить.
Роли предназначены для работы со словарями. Доступны две роли:
dictionary.roles.storage— хранение данных словарей;dictionary.roles.router— внешнее управление словарями.
Полный список опций конфигурации для роли dictionary можно найти в Справочнике по конфигурации.
Роль предназначена для контроля за устаревающими данными.
Полный список опций конфигурации для роли expirationd можно найти в Справочнике по конфигурации.
Координатор автоматического восстановления после сбоев
(failover-coordinator) — это компонент системы, обеспечивающий высокую доступность данных кластера.
Технологическая роль failover-coordinator используется в режиме восстановления после сбоев
stateful.
В кластере один из экземпляров с ролью failover-coordinator управляет процессом переключения на резервные реплики в случае сбоя
основного узла (лидера).
Если в кластере несколько экземпляров с такой ролью, узлы определяют активный самостоятельно.
Роль failover-coordinator работает в тесной связи с другими ролями Tarantool, такими как vshard-router и vshard-storage.
Координатор использует метаданные этих ролей, чтобы определить доступные реплики и перенаправить запросы.
Узнать больше: Автоматическое восстановление после отказа.
Запись медленных iproto-запросов в журнал.
Подробное описание приведено в разделе Логирование медленных запросов.
Полный список опций конфигурации для роли slow_log можно найти в Справочнике по конфигурации.
Роль предоставляет веб-интерфейс для просмотра данных (вкладка Space Explorer). Доступен как постраничный просмотр всех данных, так и поиск по индексам.
Роли предназначены для работы модуля Tarantool Clusters Federation (TCF), который позволяет выполнять репликацию шардированных данных между двумя независимыми кластерами Tarantool DB. Используемые роли:
tcf-worker— управление статусами Tarantool Clusters Federation (активный-пассивный), предоставление базового HTTP API для управления TCF;tcf-coordinator— координатор для работы автоматического восстановления после сбоев (autofailover). Отслеживает работоспособность кластеров и автоматически переключает активный-пассивный кластер в случае выхода из строя активного кластера;tcf-api— GraphQL API для внутреннего взаимодействия междуtcf-workerи веб-интерфейсом.
Пример совместного использования Tarantool DB и Tarantool Clusters Federation приведен в разделе Использование Tarantool Clusters Federation.
Роль предназначена для выполнения трассировки пользовательских функций. Подробная информация о настройке трассировки и примеры ее использования приведены в разделе Оценка производительности.
Полный список опций конфигурации для роли tracing можно найти в Справочнике по конфигурации.
Технологические роли vshard предназначены для настройки горизонтального масштабирования — шардирования.
Чтобы управлять распределением данных, в vshard используется концепция сегментов (buckets). Каждый сегмент содержит пользовательский набор данных, который может быть перемещен между узлами в зависимости от текущей конфигурации системы. Чтобы обеспечить равномерное распределение данных и нагрузки, балансировщик vshard при необходимости перемещает сегменты между узлами.
Используемые технологические роли:
-
vshard-router— перенаправление запросов к правильному сегменту. Для определения текущего расположения сегмента, роль использует метаданные этого сегмента. Это позволяет корректно перенаправлять запросы к данным, даже если сегменты постоянно перемещаются между узлами; -
vshard-storage— хранение набора сегментов с пользовательскими наборами данными, обеспечение атомарности операций переноса сегментов.
vshard также предоставляет методы, позволяющие контролировать процесс переноса.
Например, можно заблокировать перенос, используя метод bucket_pin().
Подробная информация о модуле vshard приведена в разделе Модуль vshard.