ds_designer
2020-12-28 11:18:55   0  举报             
     
         
 spl执行流程图
    作者其他创作
 大纲/内容
 任务
  输出数据到server端
  server
  zmq 分发DAG
  执行
  executor
  输入/输出通道
  输入
  当前任务是否为DAG最后一个任务
  ZMQ接收DAG
  单线程扫描队列创建source任务并提交线线程池执行
  zmq 发送protobuf序列化后的数据
  是
  数据源读入数据
  Put
  source更根据编译生成对应存储系统的语句查询数据
  返回数据
    根据DAG任务链创建下一任务
  数据逻辑处理
  下一任务提交到线程池
  阻塞数据接收完成
  antlr4解析
  client
  编译优化生成DAG
  关联当前任务的输入通道
  Scheduler
  新建输出通道
  Rest API
  反馈SPL执行结果
  创建Source任并提交到线程池务
  输出数据到下一任务输入通道
  循环处理
  上一任务输出通道读入数据
  当DAG任务链最后一个任务执行后会将数据从输出通道流向server
  初始化
  DAG队列
  发生ACK消息
  当数据处理完成后DAG处理结束
  zmq接收并反序列化,放入调度队列
  输出
  Get
  当数据接收到一定量时当前任务会根据DAG任务链,寻找数据需要流向下一任务,创建并初始化这个任务并将数据放入到该任务的输入通道
  否
  protobuf序列化DAG
  存储系统
  线程池
  初始化下一任务
  Puller
  执行器处理执行SPL逻辑DAG任务本身是链表构造,Scheduler只创建表头source任务,在任务中会创建下一任务并关联或新建数据通道;数据根据任务链的方向向任务通道流动,DAG末端任务数据会流向server端。目前分三类数据通道:1. 数据源通道 - 与数据源交互的数据通道; 协议与具体数据源类型强关联。       2. 内部数据通道 - 与Server端交互的数据通道;协议为zmq REQ-REP 模式。    3. 本地数据通道 - 任务链中间部分的数据通道;协议为本地内存队列。               DAG任务链头部采用数据源通道,尾部采用内部通道,中间采用本地通道,中间目前支持本地通道。
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
 