CHECK_READ_SLOTS
Содержание раздела
Поддерживается в версиях: 7.7.
Запрос возвращает текущее состояние слотов на чтение: лимит слотов, занятые и свободные слоты.
Информация представлена по всем нодам Prostore в разрезе приоритетов запросов и датасорсов. Доступен запрос:
- по одному приоритету в одном датасорсе;
- по одному приоритету во всех датасорсах;
- по всем приоритетам во всех датасорсах.
Связанные запросы
- RESET_READ_SLOTS — обнуляет счетчики занятых слотов на чтение;
- SET_READ_BALANCE — добавляет или обновляет настройку балансировки;
- GET_READ_BALANCE — возвращает текущие настройки балансировки;
- ERASE_READ_BALANCE — удаляет настройки балансировки.
Синтаксис
CHECK_READ_SLOTS([sql_request_priority[, datasource_name]])
Параметры:
sql_request_priority(varchar | char | string)-
Приоритет запросов, по которому запрашивается информация о слотах.
Если указанный приоритет отсутствует в настройках балансировки, возвращается пустой ответ. Если не указан, возвращается информация по всем настроенным приоритетам запросов.
Список настроенных приоритетов запросов доступен с помощью GET_READ_BALANCE.
datasource_name(varchar | char | string)-
Имя датасорса, по которому запрашивается информация о слотах.
Если указанное имя не соответствует конфигурации, возвращается пустой ответ. Если имя датасорса не указано, возвращается информация по всем датасорсам:
- указанного приоритета запросов — если
sql_request_priorityуказан; - всех приоритетов запросов — если
sql_request_priorityне указан.
- указанного приоритета запросов — если
Варианты ответа
Успешный ответ содержит объект ResultSet, в котором каждая строка описывает слоты одного приоритета запросов, выделяемые одной нодой Prostore в одном датасорсе. Недоступные ноды исключаются из ответа.
Неуспешный ответ содержит исключение.
Параметры ответа
В успешном ответе каждая строка содержит следующую информацию:
sql_request_priority— приоритет запросов;datasource— имя датасорса, настроенного для приоритета запросов;datasource_priority— вес датасорса при выборе для запросов указанного приоритета (чем больше значение, тем большее предпочтение отдается датасорсу);slots_limit— лимит слотов в датасорсе, выделяемых каждой нодой;pnode_id— идентификатор ноды кластера;slots_taken— текущее* количество занятых слотов в датасорсе, выделенных нодой;slots_free— текущее* количество свободных слотов в датасорсе, которое еще может выделить нода. Равноslots_limit – slots_taken.
* Значения slots_taken и slots_free могут отличаться от фактической занятости слотов после обнуления счетчиков слотов запросом RESET_READ_SLOTS. Соответствие восстанавливается, когда все запросы, начатые до обнуления счетчиков, завершаются и освобождают свои слоты.
Примеры
Запрос слотов по одному приоритету запросов в одном датасорсе
CHECK_READ_SLOTS('high', 'adp2')
Пример ответа:
| sql_request_ priority | datasource | datasource_ priority | slots_limit | pnode_id | slots_taken | slots_free |
|---|---|---|---|---|---|---|
| High | ADP2 | 10 | 5 | 1 | 0 | 5 |
| High | ADP2 | 10 | 5 | 2 | 1 | 4 |
| High | ADP2 | 10 | 5 | 3 | 2 | 3 |
Запрос слотов по одному приоритету запросов во всех датасорсах
CHECK_READ_SLOTS('high')
Пример ответа:
| sql_request_ priority | datasource | datasource_ priority | slots_limit | pnode_id | slots_taken | slots_free |
|---|---|---|---|---|---|---|
| High | ADP | 10 | 5 | 1 | 3 | 2 |
| High | ADP | 10 | 5 | 2 | 2 | 3 |
| High | ADP | 10 | 5 | 3 | 1 | 4 |
| High | ADP2 | 10 | 5 | 1 | 0 | 5 |
| High | ADP2 | 10 | 5 | 2 | 1 | 4 |
| High | ADP2 | 10 | 5 | 3 | 2 | 3 |
| High | ADP3 | 1 | 3 | 1 | 0 | 3 |
| High | ADP3 | 1 | 3 | 2 | 0 | 3 |
| High | ADP3 | 1 | 3 | 3 | 1 | 2 |
Запрос слотов по всем приоритетам запросов во всех датасорсах
CHECK_READ_SLOTS()
Пример ответа:
| sql_request_ priority | datasource | datasource_ priority | slots_limit | pnode_id | slots_taken | slots_free |
|---|---|---|---|---|---|---|
| High | ADP | 10 | 5 | 1 | 3 | 2 |
| High | ADP | 10 | 5 | 2 | 2 | 3 |
| High | ADP | 10 | 5 | 3 | 1 | 4 |
| High | ADP2 | 10 | 5 | 1 | 0 | 5 |
| High | ADP2 | 10 | 5 | 2 | 1 | 4 |
| High | ADP2 | 10 | 5 | 3 | 2 | 3 |
| High | ADP3 | 1 | 3 | 1 | 0 | 3 |
| High | ADP3 | 1 | 3 | 2 | 0 | 3 |
| High | ADP3 | 1 | 3 | 3 | 1 | 2 |
| Low | ADP3 | 1 | 2 | 1 | 2 | 0 |
| Low | ADP3 | 1 | 2 | 2 | 1 | 1 |
| Low | ADP3 | 1 | 2 | 3 | 0 | 2 |