portalstart 主要做 3 件事:
- 计算和分配内存
- 计算和创建segment之间的通信
- 为操作的表上锁
过程:
- 创建内存,计算和标记每节点运行时内存
- 协调各segment:
- 创建共享的snapshot
- 创建slicetable
- 创建各segment之间通信的socket
- 在plan上绑定上层的motion
- initplan
- 检查访问权限
- 打开结果表和各分区表(上锁)
- 填充slicetable(gangtype,gangsize,segment等信息)
- 为每一种类型的节点分配执行内存,保存在planstate结构体中
- 绑定junkfilter处理信息
- 分发plan至segments
- 更新各segment向输出节点(root slice)的通信状态