写入分布式表详细的过程是怎么样的?

我们拿到某一时刻3000个股票的报价数据,写入分布式表(按照日期和股票分区)。写入分布式表详细的过程是怎么样的?哪些步骤是单线程的,哪些步骤是多线程并行的?

请先 登录 后评论

1 个回答

Shena Mao

详细写入分布式表的过程如下:

1.       APIDolphinDB GUIJava API等)发送写入命令到当前数据节点的worker

2.       worker接收到指令之后,worker定位分布式表的各种信息(包括分区信息),并将要写入的数据根据分区方法进行分组

3.       分组之后会向控制节点master申请锁住这些分区

4.       如果都申请到了锁,控制节点会按照各个节点上有的分区将数据进行打包,并行发到各个节点上去

5.       各个节点创建事务并开始写入

6.       写完后各个节点发送给协调者节点“完成”消息

7.       协调者收到所有参与节点反馈的“完成”消息之后,完成事务(详情可参考:两阶段提交协议)

8.       完成事务之后,各个节点将结果汇总给发送指令的数据节点进行汇总,然后返回给API


各个数据节点写入分区的时候是并行的,其他步骤是单线程。


attachments-2021-11-ElPWVwU86192095221bb6.png

请先 登录 后评论
  • 2 关注
  • 0 收藏,1152 浏览
  • ricecake 提出于 2021-11-15 15:15