Технологические роли в Tarantool DataBase
Технологическая роль — это модуль, реализующий определенные функции или логику. Включить или выключить нужную роль для конкретных экземпляров в конфигурации можно без перезапуска этих экземпляров. Роль запускается при загрузке или перезагрузке конфигурации.
Подробная информация о ролях приведена в документации Tarantool.
В Tarantool DB доступны следующие технологические роли:
- app.roles.slow_log
- app.roles.tracing
- config.storage
- roles.cooler
- roles.crud-router, roles.crud-storage
- roles.dictionary-router, roles.dictionary-storage
- roles.expirationd
- roles.healthcheck
- roles.metrics-export
- roles.tcf-worker, roles.tcf-coordinator
Запись медленных iproto-запросов в журнал.
Подробное описание приведено в разделе Логирование медленных запросов.
Полный список опций конфигурации для роли app.roles.slow_log можно найти в Справочнике по конфигурации.
Роль предназначена для выполнения трассировки пользовательских функций. Подробная информация о настройке трассировки и примеры ее использования приведены в разделе Оценка производительности.
Полный список опций конфигурации для роли app.roles.tracing можно найти в Справочнике по конфигурации.
Роль используется, чтобы определить узел как часть централизованного хранилища конфигураций.
Полный список опций конфигурации для роли config.storage можно найти в Справочнике по конфигурации.
Узнать больше: Запуск кластера Tarantool DB как централизованного хранилища конфигураций.
Роль предназначена для работы с архивацией устаревающих данных из спейсов memtx в спейсы на vinyl.
Полный список опций конфигурации для роли roles.cooler можно найти в Справочнике по конфигурации.
Роль roles.cooler задается на экземплярах хранилища кластера и отвечает за запуск и остановку
архивации, обработку смены мастер-узла в наборе реплик, а также конфигурацию модуля expirationd.
Для итерации по индексам спейсов и выполнения фоновых задач архивации используется модуль expirationd.
Особенности работы роли:
- на каждый индекс спейса задается только одна задача архивации. Создать несколько задач по архивации на один индекс спейса невозможно. При этом можно создать несколько задач архивации на один спейс;
- архивация запускается на узле, который становится доступным для записи, и завершается на узле, когда он переходит в режим только для чтения.
Узнать больше: Архивация данных по их времени жизни.
Роли предоставляют IPROTO API для выполнения CRUD-операций (создание, чтение, обновление, удаление) на кластере. Совместно используются две роли:
roles.crud-router— предоставление API CRUD-функций, которые можно вызвать через коннектор;roles.crud-storage— выполнение CRUD-операций на хранилище.
Пример настройки ролей приведен в разделе Конфигурация кластера.
Полный список опций конфигурации, связанных с crud, можно найти в Справочнике по конфигурации.
Поскольку сбор метрик возможен только на роутерах, для сбора метрик в CRUD используйте роль roles.crud-router.
По умолчанию сбор метрик отключен (roles.crud-router.stats = false), так как их работа снижает производительность:
- на 3-10% — при использовании локального драйвера;
- 5-15% — при использовании драйвера метрик. Этот драйвер используется по умолчанию;
- до 20% — при использовании метрик, которые содержат квантили.
Включайте метрики модуля CRUD:
- если требуется дополнительная информация в виде данных с этих метрик;
- если работа метрик CRUD не скажется на общей нагрузке системы.
Включить сбор метрик можно так:
roles_cfg:roles.metrics-export:http:- endpoints:- format: prometheuspath: /metricslisten: 8081groups:routers:replication:failover: manualsharding:roles: [router]roles:- roles.crud-router- roles.metrics-export- roles.dictionary-routerroles_cfg:roles.crud-router:stats: true
Когда сбор данных метрик будет завершен, метрики необходимо отключить.
Роли предназначены для работы со словарями. Доступны две роли:
roles.dictionary-storage— хранение данных словарей;roles.dictionary-router— внешнее управление словарями.
Полный список опций конфигурации для ролей dictionary можно найти в Справочнике по конфигурации.
Роль предназначена для контроля за устаревающими данными.
Полный список опций конфигурации для роли roles.expirationd можно найти в Справочнике по конфигурации.
Добавлено в версии 3.1.0.
Роль предназначена для контроля за работоспособностью экземпляров кластера и репликации.
Полный список опций конфигурации для роли roles.healthcheck можно найти в Справочнике по конфигурации.
Роль roles.healthcheck задается на экземплярах кластера и позволяет указать адрес обработчика запроса (endpoint)
для проверки состояния здоровья узлов.
Модуль поддерживает набор встроенных проверок здоровья, а также создание пользовательских проверок и задание пользовательского формата ответа.
Чтобы настроить HTTP-сервер для отправки запросов на проверку здоровья, используется модуль roles.httpd.
Узнать больше: Проверка работоспособности кластера.
Роль предоставляет HTTP-обработчик для экспорта метрик. Узнать больше о роли можно в документации Tarantool.
Пример:
roles_cfg:roles.metrics-export:http:- endpoints:- format: prometheuspath: /metricslisten: 8081
Роли предназначены для работы модуля Tarantool Clusters Federation (TCF), который позволяет выполнять репликацию шардированных данных между двумя независимыми кластерами Tarantool DB. Используемые роли:
roles.tcf-worker— управление статусами Tarantool Clusters Federation (активный-пассивный), предоставление базового HTTP API для управления TCF;roles.tcf-coordinator— координатор для работы автоматического восстановления после сбоев (autofailover). Отслеживает работоспособность кластеров и автоматически переключает активный-пассивный кластер в случае выхода из строя активного кластера.
Пример совместного использования Tarantool DB и Tarantool Clusters Federation приведен в разделе Использование Tarantool Clusters Federation.