Перейти к основному содержимому
Версия: 2.0.x

Управление чёрным списком BE и CN

Начиная с версии v1.5.2, Selena поддерживает функцию чёрного списка BE, которая позволяет запретить использование определённых узлов BE при выполнении запросов, тем самым избегая частых сбоев запросов или другого неожиданного поведения, вызванного неудачными подключениями к узлам BE. Примером использования чёрного списка может быть сетевая проблема, препятствующая подключению к одному или нескольким BE.

Начиная с версии v2.0.0, Selena поддерживает добавление узлов CN (Compute Nodes) в чёрный список.

По умолчанию Selena может автоматически управлять чёрным списком BE и CN, добавляя узлы BE или CN, потерявшие соединение, в чёрный список и удаляя их из чёрного списка при восстановлении соединения. Однако Selena не удалит узел из чёрного списка, если он был добавлен вручную.

примечание
  • Только пользователи с привилегией BLACKLIST на уровне SYSTEM могут использовать эту функцию.
  • Каждый узел FE ведёт свой собственный чёрный список BE и CN и не делится им с другими узлами FE.

Добавление BE/CN в чёрный список

Вы можете вручную добавить узел BE/CN в чёрный список с помощью команды ADD BACKEND/COMPUTE NODE BLACKLIST. В этой команде необходимо указать ID узла BE/CN, который нужно добавить в чёрный список. Вы можете получить ID BE, выполнив команду SHOW BACKENDS, а ID CN — выполнив команду SHOW COMPUTE NODES.

Пример:

-- Получить ID BE.
SHOW BACKENDS\G
*************************** 1. row ***************************
BackendId: 10001
IP: xxx.xx.xx.xxx
...
-- Добавить BE в чёрный список.
ADD BACKEND BLACKLIST 10001;

-- Получить ID CN.
SHOW COMPUTE NODES\G
*************************** 1. row ***************************
ComputeNodeId: 10005
IP: xxx.xx.xx.xxx
...
-- Добавить CN в чёрный список.
ADD COMPUTE NODE BLACKLIST 10005;

Удаление BE/CN из чёрного списка

Вы можете вручную удалить узел BE/CN из чёрного списка с помощью команды DELETE BACKEND/COMPUTE NODE BLACKLIST. В этой команде также необходимо указать ID узла BE/CN.

Пример:

-- Удалить BE из чёрного списка.
DELETE BACKEND BLACKLIST 10001;

-- Удалить CN из чёрного списка.
DELETE COMPUTE NODE BLACKLIST 10005;

Просмотр чёрного списка BE/CN

Вы можете просмотреть узлы BE/CN в чёрном списке с помощью команды SHOW BACKEND/COMPUTE NODE BLACKLIST.

Пример:

-- Просмотр чёрного списка BE.
SHOW BACKEND BLACKLIST;
+-----------+------------------+---------------------+------------------------------+--------------------+
| BackendId | AddBlackListType | LostConnectionTime | LostConnectionNumberInPeriod | CheckTimePeriod(s) |
+-----------+------------------+---------------------+------------------------------+--------------------+
| 10001 | MANUAL | 2024-04-28 11:52:09 | 0 | 5 |
+-----------+------------------+---------------------+------------------------------+--------------------+

-- Просмотр чёрного списка CN.
SHOW COMPUTE NODE BLACKLIST;
+---------------+------------------+---------------------+------------------------------+--------------------+
| ComputeNodeId | AddBlackListType | LostConnectionTime | LostConnectionNumberInPeriod | CheckTimePeriod(s) |
+---------------+------------------+---------------------+------------------------------+--------------------+
| 10005 | MANUAL | 2025-08-18 10:47:51 | 0 | 5 |
+---------------+------------------+---------------------+------------------------------+--------------------+

Возвращаемые поля:

  • AddBlackListType: Способ добавления узла BE/CN в чёрный список. MANUAL означает, что он был добавлен вручную пользователем. AUTO означает, что он был автоматически добавлен Selena.
  • LostConnectionTime:
    • Для типа MANUAL указывает время, когда узел BE/CN был вручную добавлен в чёрный список.
    • Для типа AUTO указывает время последнего успешного установления соединения.
  • LostConnectionNumberInPeriod: Количество разрывов соединения, обнаруженных в течение CheckTimePeriod(s), который является интервалом, с которым Selena проверяет состояние соединения узлов BE/CN в чёрном списке.
  • CheckTimePeriod(s): Интервал, с которым Selena проверяет состояние соединения узлов BE/CN в чёрном списке. Его значение равно значению, указанному для параметра конфигурации FE black_host_history_sec. Единица измерения: секунды.

Настройка автоматического управления чёрным списком BE/CN

Каждый раз, когда узел BE/CN теряет соединение с узлом FE или запрос завершается с ошибкой по таймауту на узле BE/CN, узел FE добавляет узел BE/CN в свой чёрный список BE и CN. Узел FE будет постоянно оценивать связность узла BE/CN в чёрном списке, подсчитывая количество сбоев соединения в течение определённого периода времени. Selena удалит узел BE/CN из чёрного списка только в том случае, если количество его сбоев соединения ниже заданного порога.

Вы можете настроить автоматическое управление чёрным списком BE и CN с помощью следующих конфигураций FE:

  • black_host_history_sec: Продолжительность времени для хранения истории сбоев соединения узлов BE/CN в чёрном списке.
  • black_host_connect_failures_within_time: Порог сбоев соединения, допустимый для узла BE/CN в чёрном списке.

Если узел BE/CN добавлен в чёрный список автоматически, Selena будет оценивать его связность и решать, можно ли его удалить из чёрного списка. В течение black_host_history_sec узел BE/CN в чёрном списке может быть удалён из него только в том случае, если количество сбоев его соединения меньше порога, установленного в black_host_connect_failures_within_time.