详细写入分布式表的过程如下:
1. API(DolphinDB GUI,Java API等)发送写入命令到当前数据节点的worker
2. worker接收到指令之后,worker定位分布式表的各种信息(包括分区信息),并将要写入的数据根据分区方法进行分组
3. 分组之后会向控制节点master申请锁住这些分区
4. 如果都申请到了锁,控制节点会按照各个节点上有的分区将数据进行打包,并行发到各个节点上去
5. 各个节点创建事务并开始写入
6. 写完后各个节点发送给协调者节点“完成”消息
7. 协调者收到所有参与节点反馈的“完成”消息之后,完成事务(详情可参考:两阶段提交协议)
8. 完成事务之后,各个节点将结果汇总给发送指令的数据节点进行汇总,然后返回给API。
各个数据节点写入分区的时候是并行的,其他步骤是单线程。