Продукт Polymatica Analytics может работать в двух режимах. Первый — это режим работы на одном узле, а второй — режим кластера. Режим работы приложения выбирается, исходя из наличия тех или иных параметров в конфигурационном файле. В обоих режимах на Master включена возможность использовать дочерние серверы.

Режим кластера

Режим кластера — это классический режим с главным сервером (Master) и несколькими подчиненными (Slaves). Работу в режиме кластера можно схематично представить следующим образом:


В конфигурационный файл Polymatica для каждого Slave необходимо добавить адрес для подключения к Master:

plm.cluster.master.address = <address>
plm.cluster.master.port = 8080

или выполнить команду

polymatica --config=/path/to/slave/polymatica.conf --master-address=<address> --master-port=8080

В таком случае приложение получает роль подчиненного менеджера (Slave) и начинает отслеживать подключение к Master. Master, в свою очередь, получает информацию о существовании удаленного Slave и при необходимости отправляет ему команды.

Конфигурация кластера в режиме Worker

В данной конфигурации Master выполняет следующие задачи:

  1. Оркестрация запросов пользователей (работа с мультисферами) на подчиненные узлы кластера.
  2. Самостоятельное обслуживание запросов пользователей (работа с мультисферами).
  3. Импорт/хранение данных мультисфер.


Режим Worker, подразумевающий, что Master используется как расчетный узел, запускается при наличии в файле конфигурации следующего параметра:

plm.cluster.master.enable_servers

При отсутствии этого параметра у Master он не запускает у себя расчетные серверы (Workers), а лишь осуществляет передачу команд к наиболее свободным менеджерам. Также на нем запускается основной процесс импорта данных из источника. 


Конфигурация кластера в режиме Importer

В данной конфигурации Master выполняет следующие задачи:

  1. Оркестрация запросов пользователей (работа с мультисферами) на подчиненные узлы кластера.
  2. Импорт/хранение данных мультисфер.


Режим Importer запускается, если в файле конфигурации у Master отсутствует следующий параметр:

plm.cluster.master.enable_servers

Режим одного узла

В этом режиме продукт выполняет все операции в разных процессах на одном хосте (Master), без подключения подчиненных менеджеров (Slaves). 

Для конфигурации с одним узлом единственно возможным режимом работы является режим Worker, описанный выше, поэтому для режима одного узла по умолчанию установлен обязательный параметр:

plm.cluster.master.enable_servers

При этом Master может запускать подчиненные расчетные серверы (Workers) на одном хосте с самим собой.


Режим кластера на одном физическом репозитории

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

Режим накладывает ограничения, что Master и все подчиненные серверы должны работать либо на одном хосте, либо в одной директории репозитория (смонтированной, NFS и т. д.).

Включается этот режим только через конфигурационный файл, причем параметр необходимо добавлять в конфигурационные файлы и Master, и всех Slave:

plm.cluster.one_repo_mode
plm.manager.repo_directory = /path/to/shared/repo
В случае использования NFS производительность системы может сильно падать из-за пропускной способности сети.

Тайм-аут до закрытия узла кластера

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

За настройку тайм-аута до закрытия узла кластера отвечает следующий параметр; значение в секундах:

plm.cluster.max_node_state_age = 60

Дополнительные параметры кластера можно посмотреть в описании конфигурационного файла.

Инструкция по настройке кластера при миграции на версию 5.9.12 приведена в ПРИЛОЖЕНИИ Б. Миграция с 5.7.61(_cluster) на 5.9.12.