-
Leader 迁移:
- 当一个 TiKV 节点被缩容时,它上面的 leader 可能需要迁移到其他节点上。
- Leader 迁移的过程通常是这样的:
-
原 Leader 失去心跳:当 TiKV 节点被缩容时,原 Leader 可能会失去心跳,导致其不再被视为有效的 Leader。
-
其他 Follower 进行选举:其他两个 Follower 会开始进行选举,以选出一个新的 Leader。
-
选举新 Leader:选举过程中,TiKV 节点会相互通信,通过 Raft 算法选举出一个新的 Leader。
-
新 Leader 接管:一旦新 Leader 被选出,它会接管原 Leader 的职责,包括处理客户端请求和复制数据。
-
副本补充:
- 在缩容过程中,如果原 Leader 被迁移走,可能会导致某些 Region 的副本数不足。
- TiKV 集群会自动检测到这种情况,并尝试补充副本。
- 补充副本的过程通常是这样的:
-
检测不足的副本:TiKV 集群会检测到副本数不足的 Region。
-
选择一个合适的节点:集群会选择一个合适的节点来作为新的副本。
-
复制数据:新的副本会从其他副本中复制数据,以确保数据的一致性。
-
维护 Raft 日志:新的副本会维护 Raft 日志,以确保数据的持久性和一致性。
2 个赞