Технологические роли в Tarantool DB | Tdb
Справочник Технологические роли в Tarantool DB

Технологические роли в 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.

Found what you were looking for?
Feedback