Технологические роли в 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
активируется и начинает процесс переключения на
резервные реплики. Этот процесс состоит из нескольких этапов:
определение доступных реплик, которые можно использовать в качестве резервных;
выбор реплики, которая будет использоваться в качестве нового основного узла – обычно это реплика с наиболее актуальными данными;
перенаправление всех запросов к выбранной реплике;
обновление метаданных системы для отображения новой конфигурации.
Роль failover-coordinator
работает в тесной связи с другими ролями Tarantool, такими как vshard-router и vshard-storage.
Координатор использует метаданные этих ролей, чтобы определить доступные реплики и перенаправить запросы.
Если в кластере несколько узлов с ролью failover-coordinator
, узлы сами определяют активный.
В Tarantool failover-coordinator
хранит текущее состояние в State provider
(кто является лидером, а кто нет), который
может быть Tarantool Stateboard
или кластер etcd.
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.