---
+0 TiDB 在 Raft 成员变更上踩的坑
问题
上次跟好基 黄东旭 在咖啡厅撩天的时候谈笑风生地探讨了一个 TiDB 使用 Raft 时遇到的问题:
TiKV 层的 Raft 实现, 使用的是 Raft 单步变更 算法(每次添加或删除一个节点),
例如副本由 abc 变成 bcd 过程中,
先加入 d, 变成 abcd , 再去掉 a 变成最终配置 bcd.
这中间经历的4节点的状态 abcd, 有可能在出现二分的网络割裂(ad | bc)时导致整个集群无法选出leader.
这种网络割裂在跨机房部署时容易出现
查看全文: http://www.udpwork.com/item/17475.html
上次跟好基 黄东旭 在咖啡厅撩天的时候谈笑风生地探讨了一个 TiDB 使用 Raft 时遇到的问题:
TiKV 层的 Raft 实现, 使用的是 Raft 单步变更 算法(每次添加或删除一个节点),
例如副本由 abc 变成 bcd 过程中,
先加入 d, 变成 abcd , 再去掉 a 变成最终配置 bcd.
这中间经历的4节点的状态 abcd, 有可能在出现二分的网络割裂(ad | bc)时导致整个集群无法选出leader.
这种网络割裂在跨机房部署时容易出现
查看全文: http://www.udpwork.com/item/17475.html