THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
初始化启动
启动脚本:start-cnode.sh
配置项:iotdb-PartitionNodeConfigNode.properties
- PartitionNode 列表 List<hostname:clusterPort>(如有高可用需求建议配置 3 副本)
- 每个存储组对应多少VSG、MManager
- 负载均衡策略
- 共识算法
启动流程
- 读取配置信息读取配置信息中的 ConfigNode 列表,列表长度为初始复制组副本数
- 检查配置信息是否一致
- 如果一致,组建 PartitionNode 共识组ConfigNode 复制组
增加节点
启动脚本:add-cnode.sh
配置项:iotdb-ConfigNode.properties
- ConfigNode 列表 List<hostname:clusterPort>(只需要配置一个 PartitionNode)
启动流程
- 读取配置信息的 ConfigNode 列表
- 向 ConfigNode 列表中的任意一个发送增加节点命令
- ConfigNode 复制组确认增加节点,将分区数据同步到新加入的 ConfigNode 节点
停机流程
停机意味着某节点临时停机,复制组中的节点数保持不变。
- ConfigNode PartitionNode 共识组记录此 PartitionNode ConfigNode A 即将停机
- 如果 PartitionNode ConfigNode A 为 Leader,则将 Leader 迁移到另一台 PartitionNode B
- PartitionNode ConfigNode A 进程退出
移除流程
移除意味着从复制组中删除此节点,复制组节点数目减一。
- PartitionNode ConfigNode 共识组记录此 PartitionNode ConfigNode A 即将移除即将移除;
- 需要根据副本数和节点数关系判断是否可以执行移除操作;
- 如果 PartitionNode ConfigNode A 为 Leader,则将 Leader 迁移到另一台 PartitionNode ConfigNode B
- PartitionNode ConfigNode 共识组将 PartitionNode ConfigNode A 移除,共识组成员数减一
- PartitionNode ConfigNode A 进程退出