Кластеризация Prostore

Содержание раздела
  1. Состав кластера
  2. Взаимодействие кластера с другими компонентами
  3. Гарантии в кластере
    1. Линеаризуемость (recency)
    2. Атомарность и уровень изоляции операций
  4. Ограничения кластера Prostore

Система поддерживает кластеризацию — подключение нескольких нод в одно окружение. Все ноды кластера равноправны и могут выполнять любые виды запросов. Сбой ноды не прерывает работу остальных нод.

Для работы с кластером Prostore необходимо подключиться к любой из его нод, указав ее доменное имя или IP-адрес и номер порта, равный значению параметра конфигурации DTM_CORE_HTTP_PORT.

Подробнее о способах подключения к ноде см. в разделе Подключение, о конфигурации кластера см. в разделе Конфигурация кластера.

Состав кластера

Кластер может состоять из произвольного количества нод — узлов сервиса исполнения запроса (query execution core). Для поддержки работы с брокером сообщений Kafka в кластере должны быть также развернуты узлы сервиса мониторинга статусов Kafka (status monitor).

В кластере можно развернуть одинаковое количество узлов query execution core и status monitor или больше узлов query execution core, чем узлов status monitor, но не меньше. Например, при наличии трех экземпляров query execution core можно развернуть три, два или один экземпляр status monitor.

Взаимодействие кластера с другими компонентами

Все ноды кластера Prostore работают с общим набором внешних компонентов: одним хранилищем данных и одним экземпляром каждого коннектора, а также с общим сервером сервисной БД (ZooKeeper) и общим сервером или серверами Kafka.

Подробнее о внешних компонентах, с которыми работает система, см. в разделе Связи с другими системами и компонентами.

На рисунке ниже показан кластер Prostore и внешние компоненты, с которыми он взаимодействует.

Кластер Prostore с внешними компонентами и системами

Гарантии в кластере

Линеаризуемость (recency)

Чтобы обеспечить гарантии линеаризуемости на уровне кластера, необходимо использовать команду SYNC перед запросами чтения и выгрузки данных или читать и выгружать данные с явным указанием номера последней (recent) версии данных с помощью выражения FOR SYSTEM_TIME AS OF CN <sys_cn>.

Атомарность и уровень изоляции операций

Для кластера гарантируется атомарность операций записи и их изоляция на уровне сериализуемости (serializable isolation level).

Ограничения кластера Prostore

  • Нет встроенного балансировщика нагрузки между нодами кластера.
  • Нет выделенных нод, все ноды полностью равноправны.
  • При работе с кластером в общем случае не гарантируется линеаризуемость: чтение и выгрузка данных из нод кластера, отличных от нод загрузки и обновления данных, может приводить к получению устаревших (на уровне сетевых задержек) данных. Линеаризуемость гарантируется только после выполнения команды SYNC или при чтении и выгрузке с указанием номера версии данных.
  • Для всех нод кластера значение параметра конфигурации AUTO_RESTORE_STATE должно быть равно false.