看啥推荐读物
专栏名称: 高可用架构
高可用架构公众号。
目录
相关文章推荐
今天看啥  ›  专栏  ›  高可用架构

TiDB 在 Raft 成员变更上踩的坑

高可用架构  · 公众号  · 架构  · 2021-01-18 17:00
问题上次跟好基 黄东旭 在咖啡厅撩天的时候谈笑风生地探讨了一个 TiDB 使用 Raft 时遇到的问题:TiKV 层的 Raft 实现, 使用的是 Raft 单步变更 算法(每次添加或删除一个节点), 例如副本由 abc 变成 bcd 过程中, 先加入 d, 变成 abcd , 再去掉 a 变成最终配置 bcd.这中间经历的4节点的状态 abcd, 有可能在出现二分的网络割裂(ad | bc)时导致整个集群无法选出leader. 这种网络割裂在跨机房部署时容易出现, 例如 a, b, c 三个节点部署在3个机房:正常情况下, 任意一个机房和外界连接中断, 都可以用剩下的2个机房选出leader继续工作.在成员变更过程中, 例如上面需要将DC-1中的 a 节点迁移到 d 节点, 中间状态 DC-1 有 ad 2个节点. 这时如果 DC-1 跟外界联系中断, 由于4节点的 majority 需要至少3 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照