Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


增加 DataNode


每个 DataNode 是独立加入集群的,不相互依赖,只依赖 PartitionNode。


启动脚本:add-dnode.sh


配置项:iotdb-datanode.properties 

  • hostname
  • 单机配置项
  • Coordinator 服务端口
  • 共识协议服务端口
  • PartitionNode 列表 List<hostname:clusterPort>(不需要写全,DataNode 能够访问一个活跃的 PartitionNode 即可)


启动流程

  • 读取本地数据信息(VSG/MManager)
  • 向  PartitionNode 汇报本节点硬件信息和数据负载,加入集群并检查 DataNode 内的数据是否有效,PartitionNode 进行如下检查
    • PartitionNode 识别该 DataNode 是否已在集群中
      • 如果不在集群中,进行扩容操作,调整每个存储组的最大 VSG 个数,改为当前集群总核数/副本数,并创建新的 VSG
      • 如果已在集群中,记录节点信息
    • 触发负载均衡策略
  • 如果本节点的 VSG/MManager 已在某共识组内且有效,恢复共识组,并向 PartitionNode 汇报恢复的共识组


停掉 DataNode


停机流程


  • 向 PartitionNode 共识组汇报此 DataNode A 即将停机
  • PartitionNode 记录此信息,后续请求避免路由到此节点
  • 此 DataNode 共识组记录此信息
  • 如果 DataNode A 为 Leader,则将 Leader 迁移到另一台 DataNode B
  • DataNode A 进程退出


移除 DataNode


移除流程


用户操作:通过客户端向集群发送命令,指定删除某节点

...