#multithreading #dolphindb
Вопрос:
Что означает работник, вспомогательный работник, веб-работник, инфра-работник, динамический работник и локальные исполнители соответственно в DolphinDB? Почему вводится второстепенный работник и динамический работник и каково его использование?
Ответ №1:
работник: поток регулярных интерактивных заданий. Он делит запросы клиентов на подзадачи после их получения. В зависимости от детализации задачи работник либо выполнит задачи, либо передаст их локальному исполнителю или удаленному исполнителю. Количество рабочих можно задать, указав параметр конфигурации workerNum, а значение по умолчанию определяется количеством ядер процессора.
вторичный работник: поток вторичных заданий. Он используется для предотвращения циклов заданий и устранения тупиковых ситуаций, вызванных циклической зависимостью между задачами. Верхний предел можно установить, указав параметр конфигурации secondaryWorkerNum, а значение по умолчанию-workerNum.
веб-работник: поток, обрабатывающий HTTP-запросы. DolphinDB предоставляет веб-интерфейс для управления кластерами, позволяющий пользователям взаимодействовать с узлами DolphinDB. Верхний предел можно установить, указав параметр конфигурации webWorkerNum, а значение по умолчанию равно 1.
infra worker: поток, который сообщает о сердцебиении внутри кластеров. Это решает проблему, заключающуюся в том, что сердцебиение не может быть сообщено ведущему вовремя, когда кластер находится под высоким давлением.
динамический рабочий: динамический рабочий поток в качестве дополнения к рабочему. Если новая задача запрашивается, когда заняты все рабочие потоки, система создает динамический рабочий поток для выполнения задачи. Верхний предел можно установить, указав параметр конфигурации maxDynamicWorker, а значение по умолчанию-workerNum. Поток будет повторно использован системой после простоя в течение 60 секунд для высвобождения ресурсов памяти.
локальный исполнитель: локальный поток, выполняющий подзадачи, выделенные работником. Каждый локальный исполнитель может одновременно выполнять только одну задачу. Все рабочие потоки совместно используют одного локального исполнителя. Количество локальных исполнителей можно задать, указав параметр конфигурации localExecutors, а значением по умолчанию является количество ядер процессора минус 1. Количество рабочих и локальных исполнителей напрямую определяет производительность системы для параллельных вычислений.