Технологические роли в Tarantool DB¶
Технологические роли – это список модулей, обеспечивающих дополнительную функциональность. В Tarantool DB доступны следующие технологические роли:
crud-router, crud-storage¶
Роли предоставляют IPROTO API для выполнения CRUD-операций (создание, чтение, обновление, удаление) на кластере. Совместно используются две роли:
- crud-router– предоставление API CRUD-функций, которые можно вызвать через коннектор;
- crud-storage– выполнение CRUD-операций на хранилище.
Пример настройки роли 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: false
  stats: true
  stats_driver: metrics
...
Включить сбор метрик можно так:
crud.cfg{ stats = true }
Когда сбор данных метрик будет завершен, метрики необходимо отключить.
dictionary¶
Роли предназначены для работы со словарями. Доступны две роли:
- dictionary.roles.storage– хранение данных словарей;
- dictionary.roles.router– внешнее управление словарями.
Полный список опций конфигурации для роли dictionary можно найти в Справочнике по конфигурации.
expirationd¶
Роль предназначена для контроля за устаревающими данными.
Полный список опций конфигурации для роли expirationd можно найти в Справочнике по конфигурации.
failover-coordinator¶
Координатор автоматического восстановления после сбоев
(failover-coordinator) – это компонент системы, обеспечивающий высокую доступность данных кластера.
Технологическая роль failover-coordinator используется в режиме восстановления после сбоев
stateful.
В кластере один из экземпляров с ролью failover-coordinator управляет процессом переключения на резервные реплики в случае сбоя
основного узла (лидера).
Если в кластере несколько экземпляров с такой ролью, узлы определяют активный самостоятельно.
Important
Рекомендуемое количество узлов с ролью failover-coordinator на один кластер – 2–3 экземпляра (по числу центров обработки данных).
Роль failover-coordinator работает в тесной связи с другими ролями Tarantool, такими как vshard-router и vshard-storage.
Координатор использует метаданные этих ролей, чтобы определить доступные реплики и перенаправить запросы.
Узнать больше: Автоматическое восстановление после отказа.
slow_log¶
Запись медленных iproto-запросов в журнал.
Подробное описание приведено в разделе Логирование медленных запросов.
Полный список опций конфигурации для роли slow_log можно найти в Справочнике по конфигурации.
space-explorer¶
Роль предоставляет веб-интерфейс для просмотра данных (вкладка Space Explorer). Доступен как постраничный просмотр всех данных, так и поиск по индексам.
tcf-worker, tcf-coordinator, tcf-api¶
Роли предназначены для работы модуля 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¶
Роль предназначена для выполнения трассировки пользовательских функций. Подробная информация о настройке трассировки и примеры ее использования приведены в разделе Оценка производительности.
Полный список опций конфигурации для роли tracing можно найти в Справочнике по конфигурации.
vshard-router, vshard-storage¶
Технологические роли vshard предназначены для настройки горизонтального масштабирования – шардирования.
Чтобы управлять распределением данных, в vshard используется концепция сегментов (buckets). Каждый сегмент содержит пользовательский набор данных, который может быть перемещен между узлами в зависимости от текущей конфигурации системы. Чтобы обеспечить равномерное распределение данных и нагрузки, балансировщик vshard при необходимости перемещает сегменты между узлами.
Используемые технологические роли:
- vshard-router– перенаправление запросов к правильному сегменту. Для определения текущего расположения сегмента, роль использует метаданные этого сегмента. Это позволяет корректно перенаправлять запросы к данным, даже если сегменты постоянно перемещаются между узлами;
- vshard-storage– хранение набора сегментов с пользовательскими наборами данными, обеспечение атомарности операций переноса сегментов.
vshard также предоставляет методы, позволяющие контролировать процесс переноса.
Например, можно заблокировать перенос, используя метод bucket_pin().
Подробная информация о модуле vshard приведена в разделе Модуль vshard.