RESET_READ_SLOTS
Содержание раздела
Поддерживается в версиях: 7.7.
Запрос обнуляет счетчики занятых слотов на чтение для указанной или всех нод Prostore.
Запрос можно использовать, например, чтобы устранить чрезмерное скопление запросов в очереди, произошедшее из-за неоптимальной настройки балансировки чтения.
Чтобы проверить текущее состояние слотов, используйте CHECK_READ_SLOTS. Полная или почти полная занятость слотов (значение slots_taken равно или близко к slots_limit) может означать скопление запросов в очереди.
Как работает запрос
Запрос обнуляет счетчики занятых слотов, соответствующие параметрам запроса. После этого указанные ноды могут выделить дополнительный набор слотов и направить в них запросы из очереди.
Уже занятые слоты не освобождаются: запросы, занявшие их, продолжают выполняться в штатном порядке.
После обнуления счетчиков ответ CHECK_READ_SLOTS может отличаться от фактической занятости слотов. Соответствие восстановится, когда все запросы, начатые до обнуления счетчиков, завершатся и освободят свои слоты.
Нагрузка на датасорсы может временно возрасти из-за увеличенного числа выделенных слотов.
Связанные запросы
- CHECK_READ_SLOTS — возвращает текущее состояние слотов на чтение;
- SET_READ_BALANCE — добавляет или обновляет настройку балансировки;
- GET_READ_BALANCE — возвращает текущие настройки балансировки;
- ERASE_READ_BALANCE — удаляет настройки балансировки.
Синтаксис
Обнуление занятых слотов на чтение для указанной ноды:
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()