CHECK_READ_SLOTS

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

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

Запрос возвращает текущее состояние слотов на чтение: лимит слотов, занятые и свободные слоты.

Информация представлена по всем нодам Prostore в разрезе приоритетов запросов и датасорсов. Доступен запрос:

  • по одному приоритету в одном датасорсе;
  • по одному приоритету во всех датасорсах;
  • по всем приоритетам во всех датасорсах.

Синтаксис

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