SET_MODE_READONLY

Содержание раздела
  1. Синтаксис
  2. Варианты ответа
  3. Результат выполнения
    1. Включение режима
    2. Выключение режима
  4. Ограничения
  5. Примеры
    1. Включение режима «Только для чтения»
    2. Выключение режима «Только для чтения»

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

Запрос включает или выключает (в зависимости от параметров) режим «Только для чтения» во всех логических БД окружения на всех нодах кластера.

Подробнее о режиме и блокируемых операциях см. в разделе Режим «Только для чтения».

Синтаксис

SET_MODE_READONLY(enable_mode[, erase_running_write_ops])

Параметры:

enable_mode

Флаг, включающий и выключающий режим «Только для чтения». Возможные значения:

  • true — включить режим «Только для чтения»;
  • false — выключить режим «Только для чтения», вернув кластер в штатный режим работы.
erase_running_write_ops

Флаг, управляющий отменой начатых операций записистатусе 0) при включении режима «Только для чтения». Возможные значения:

  • false (по умолчанию) — дождаться завершения операций, не отменяя их;
  • true — отменить операции.

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

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

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

Результат выполнения

Включение режима

При успешном включении режима «Только для чтения» команда:

  1. Устанавливает запрет на новые DDL-операции (кроме DDL для внешних таблиц, временных прокси-таблиц и standalone-таблиц) и операции записи.
  2. Если запущена с флагом отмены начатых операций записи:
    1. Запускает отмену операций записи и дожидается завершения процесса в течение DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS.
    2. Если в процессе сменился лидер кластера, новый лидер автоматически завершает включение режима и отмену операций.
    3. Если операции не успели отмениться за DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS, исполнение завершается с ошибкой.
  3. Если запущена без флага отмены начатых операций записи, дожидается их завершения.
  4. Возвращает ответ.

Выключение режима

При успешном выключении режима «Только для чтения» команда:

  1. Снимает запрет на новые DDL-операции и операции записи.
  2. Возвращает ответ.

Ограничения

  • Выключение режима недоступно, пока предыдущая команда включает его с отменой операции записи.
  • Команда с флагом отмены операций, равным true:
    • не гарантирует консистентность данных при отмене операций загрузки данных из Kafka в ADB;
    • завершается неуспешно, если операции записи не удалось отменить в течение DELTA_ROLLBACK_OPERATIONS_TIMEOUT_MS. В этом случае следует дождаться завершения отмены операций и повторить команду.

Примеры

Включение режима «Только для чтения»

Включение режима «Только для чтения» для кластера без отмены начатых операций записи:

SET_MODE_READONLY(true);

-- равносилен запросу
SET_MODE_READONLY(true, false);

Включение режима «Только для чтения» для кластера с отменой начатых операций записи:

SET_MODE_READONLY(true, true)

Выключение режима «Только для чтения»

SET_MODE_READONLY(false)