RESET_READ_SLOTS

Содержание раздела
  1. Как работает запрос
  2. Связанные запросы
  3. Синтаксис
  4. Варианты ответа
  5. Примеры
    1. Обнуление счетчиков слотов на одной ноде
    2. Обнуление счетчиков слотов на всех нодах

Поддерживается в версиях: 7.7.

Запрос обнуляет счетчики занятых слотов на чтение для указанной или всех нод Prostore.

Запрос можно использовать, например, чтобы устранить чрезмерное скопление запросов в очереди, произошедшее из-за неоптимальной настройки балансировки чтения.

Чтобы проверить текущее состояние слотов, используйте CHECK_READ_SLOTS. Полная или почти полная занятость слотов (значение slots_taken равно или близко к slots_limit) может означать скопление запросов в очереди.

Как работает запрос

Запрос обнуляет счетчики занятых слотов, соответствующие параметрам запроса. После этого указанные ноды могут выделить дополнительный набор слотов и направить в них запросы из очереди.

Уже занятые слоты не освобождаются: запросы, занявшие их, продолжают выполняться в штатном порядке.

После обнуления счетчиков ответ CHECK_READ_SLOTS может отличаться от фактической занятости слотов. Соответствие восстановится, когда все запросы, начатые до обнуления счетчиков, завершатся и освободят свои слоты.

Нагрузка на датасорсы может временно возрасти из-за увеличенного числа выделенных слотов.

Синтаксис

Обнуление занятых слотов на чтение для указанной ноды:

RESET_READ_SLOTS(pnode_id[, sql_request_priority[, datasource_name]])

Обнуление занятых слотов на чтение для всех нод:

RESET_READ_SLOTS([sql_request_priority[, datasource_name]])

Если в запросе нет параметров, счетчики занятых слотов обнуляются на всех нодах кластера для всех приоритетов запросов и датасорсов.

Параметры:

pnode_id (integer | int32)

Номер (целочисленный идентификатор) ноды, для которой обнуляется счетчик занятых слотов. Должен быть из числа заданных в секции конфигурации core.raft.servers; иначе возвращается ошибка.

sql_request_priority (varchar | char | string)

Приоритет запросов, по которому обнуляются счетчики занятых слотов.

Если указанный приоритет отсутствует в настройках балансировки, возвращается пустой ответ.

Список настроенных приоритетов запросов доступен с помощью GET_READ_BALANCE.

datasource_name (varchar | char | string)

Имя датасорса, для которого обнуляются счетчики занятых слотов.

Если не соответствует конфигурации, возвращается пустой ответ.

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Если какая-либо из запрашиваемых нод недоступна, счетчики обнуляются только на доступных из них, а в ответе возвращается исключение с информацией о недоступных нодах.

Примеры

Обнуление счетчиков слотов на одной ноде

Обнуление счетчиков слотов, выделенных второй нодой, в датасорсе adp по приоритету запросов high:

RESET_READ_SLOTS(2, 'high', 'adp')

Обнуление счетчиков слотов, выделенных второй нодой, во всех датасорсах по приоритету запросов high:

RESET_READ_SLOTS(2, 'high')

Обнуление счетчиков слотов, выделенных второй нодой, во всех датасорсах по всем приоритетам запросов:

RESET_READ_SLOTS(2)

Обнуление счетчиков слотов на всех нодах

Обнуление счетчиков слотов, выделенных всеми нодами, в датасорсе adp по приоритету запросов high:

RESET_READ_SLOTS('high', 'adp')

Обнуление счетчиков слотов, выделенных всеми нодами, во всех датасорсах по всем приоритетам запросов:

RESET_READ_SLOTS()