Процедура работы импорта из источника JDBC в кластерном режиме включает следующие шаги:
- Master-узел загружает из базы данных первые 20480 строк по умолчанию. Количество строк настраивается параметром конфигурации plm.import.fetch_row_count.
- Загруженные данные рассылаются по Slave-узлам.
- Создаются (либо дополняются, если это обновление) файлы мультисфер на дисках Master-узла и Slave-узлов. Каждый узел кластера самостоятельно формирует эти файлы.
- Параллельно пункту 3 идет загрузка следующих 20480 строк, которые в совокупности составляют блок. По умолчанию количество блоков – 2, настраивается параметром конфигурации plm.import.datasources_blocks.
Пункты 1–4 повторяются до исчерпания загружаемых данных. После этого происходит построение сортировочного индекса на Master-узле и Slave-узлах.
Параметры plm.import.fetch_row_count и plm.import.datasources_blocks можно подобрать таким образом, что, пока идет расчет одного блока, загружаются следующие N блоков. Это позволит полностью утилизировать возможности сети и БД и сократить время обновления.
Расчеты, связанные с формированием файлов на диске, производятся на каждом из узлов системы. Это позволяет сократить время готовности мультисферы к использованию:
- В первом случае расчеты происходят на каждом из узлов параллельно, и файлы мультисфер готовы к использованию примерно в одно время (загрузка – рассылка – расчеты);
- Во втором случае к времени готовности МС добавляется время на упаковку и распаковку данных после завершения обновления на мастере (загрузка – расчеты – запаковка всех данных для узлов – рассылка готовых данных по узлам – распаковка данных на узлах).