balance data的实现,会有脑裂风险吗?

假设要把part从src迁移到dst,当前part下peer数为3。
则在balance data的实现流程中,是先add一个新learner,learner追平了数据后,再通过add peer,将learner升级成peer(疑问点);然后再remove peer(remove老src下的peer)。
在“疑问点“处,peer总数是4,而raft操作成功需要的投票数为 >= (peer数 + 1) / 2 = 5 / 2 = 2, 这时不是有脑裂风险了吗?
请问我的理解是否正确?听说balance data后续会重新可用,那时计划如何解决这个问题呢?

不会,因为我们peer数不算自己,所以4 peer时投票数应为 (3+1)/2+1=3,而3 peer时为 (2+1)/2+1=2

2 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。