DolphinDB中的worker之类的具体作用

DolphinDB中的worker,secondaryWorker, web worker,infra worker,dynamic worker,local executors分别是什么?为什么要引入secondaryWorker和dynamic worker?

请先 登录 后评论

1 个回答

Qing Li

worker:常规交互作业的工作线程,接收客户端请求,将任务分解为多个小任务,根据任务的粒度自己执行或者发送给local executor或remote executor执行。worker数量通过配置项workerNum设置,默认值是CPU内核数。

secondary worker:次级工作线程,用于避免作业环,解决节点间的任务循环依赖而导致的死锁问题。其上限通过配置项secondaryWorkerNum配置,默认为workerNum。

web worker:处理HTTP请求的工作线程。DolphinDB提供了基于web的集群管理界面,用户可以通过web与DolphinDB节点进行交互。其上限通过配置项webWorkerNum设置,默认值是1。

infra worker:心跳汇报线程,用于集群内部间心跳信息的汇报,解决集群压力大时,心跳信息无法及时汇报到master。

dynamic worker:动态工作线程,作为worker的补充。如果所有的工作线程被占满,有新任务时,系统会创建动态工作线程来执行任务。其上限通过配置项maxDynamicWorker设置,默认值是workerNum。该线程在任务执行完后若闲置60秒则会被系统自动回收,不再占用系统资源。

local executor:本地执行线程,执行worker分配的子任务。每个本地执行线程一次只能处理一个任务。所有工作线程共享本地执行线程。local executor的数量通过配置项localExecutors设置,默认值是CPU内核数减1。worker和local executor的数量直接决定了系统的并发计算的能力。

请先 登录 后评论
  • 1 关注
  • 0 收藏,876 浏览
  • Jax Wu 提出于 2021-11-24 16:03