初始化启动


启动脚本:start-cnode.sh


配置项:iotdb-ConfigNode.properties

  • PartitionNode 列表 List<hostname:clusterPort>(如有高可用需求建议配置 3 副本
  • 每个存储组对应多少VSG、MManager
  • 负载均衡策略
  • 共识算法


启动流程

  • 读取配置信息中的 ConfigNode 列表,列表长度为初始复制组副本数
  • 检查配置信息是否一致
  • 如果一致,组建 ConfigNode 复制组


增加节点


启动脚本:add-cnode.sh


配置项:iotdb-ConfigNode.properties

  • ConfigNode 列表 List<hostname:clusterPort>(只需要配置一个 PartitionNode)


启动流程

  • 读取配置信息的 ConfigNode 列表
  • 向 ConfigNode 列表中的任意一个发送增加节点命令
  • ConfigNode 复制组确认增加节点,将分区数据同步到新加入的 ConfigNode 节点


停机流程


停机意味着某节点临时停机,复制组中的节点数保持不变

  • ConfigNode 共识组记录此 ConfigNode A 即将停机
  • 如果 ConfigNode A 为 Leader,则将 Leader 迁移到另一台 PartitionNode B
  • ConfigNode A 进程退出


移除流程


移除意味着从复制组中删除此节点,复制组节点数目减一。

  • ConfigNode 共识组记录此 ConfigNode A 即将移除;
  • 需要根据副本数和节点数关系判断是否可以执行移除操作;
  • 如果 ConfigNode A 为 Leader,则将 Leader 迁移到另一台 ConfigNode B
  • ConfigNode 共识组将 ConfigNode A 移除,共识组成员数减一
  • ConfigNode A 进程退出
  • No labels