Плагин Topology Validator#
Введение#
Включение плагина Topology Validator в конфигурацию серверных узлов DataGrid позволяет автоматически блокировать запись во все кеши кластера в случае потери связи с частью узлов.
Конфигурация#
Для настройки плагина TopologyValidator:
Создайте экземпляр класса
CacheTopologyValidatorPluginProviderи укажите его в конфигурации всех серверных узлов DataGrid:Java#new IgniteConfiguration() ... .setPluginProviders(new CacheTopologyValidatorPluginProvider());Явно задайте узлы, входящие в базовую топологию (baseline topology), либо сконфигурируйте автонастройку базовой топологии с тайм-аутом, значительно превышающим тайм-аут определения сбоя (failure detection timeout).
Примечание
В текущей версии реализации плагина
TopologyValidatorиспользовать автонастройку базовой топологии с тайм-аутом, равным нулю, запрещено.Узлы, сконфигурированные в базовой топологии, будут интерпретироваться кластером как «идеальный» набор узлов кластера, который будет использован для определения узлов, связь с которыми потеряна для каждого из сегментов.
Сконфигурируйте порог деактивации. На его основе вычисляется число узлов, связь с которыми может быть потеряна без ограничения возможности записи в кеши сегмента.
Для вычисления используется формула:
N = B - [B * dth] - 1где:
N — число узлов, связь с которыми может быть потеряна без ограничения возможности записи в кеши сегмента;
B — число узлов в базовой топологии;
dth — порог деактивации;
[x] — функция округления значения x до ближайшего целого в меньшую сторону.
Значение порога деактивации по умолчанию равно 0.5. Это значит, что сегмент продолжит обрабатывать запросы на запись только в том случае, если в его составе находится более половины узлов из базовой топологии. При значении порога деактивации 0.5 и выше продолжить обрабатывать запросы на запись может не более, чем один сегмент.
Для установки значения порога деактивации установите распределенное свойство конфигурации
org.apache.ignite.topology.validator.deactivation.thresholdпри помощи утилитыcontrol.sh. Для этого используйте следующую команду:control.sh --property set --name topology.validator.deactivation.threshold --val new_valгде
new_val— новое значение порога деактивации.
Блокировка и восстановление обработки запросов на запись в кеши#
Блокировка обработки запросов записи в кеши осуществляется путем автоматического перевода кластера в статус READ-ONLY. Чтобы разблокировать возможность выполнения операций записи, вручную переведите кластер в статус ACTIVE. Это можно сделать при помощи утилиты control.sh или при помощи Java API.