mongodb一致性协议_Mongodb选举机制

1.选举协议

下面是官网对老版本和新版本复制协议的简洁说明:

pv0: 基于priority 和 optime 选举新主,依赖clock synchronization。

有选举权的节点,每一轮选举最多投一票,在30s内,不能重复投票。

pv1:基于Raft协议,每个成员都有 对候选主列表成员投赞成或者反对票,不是单方面否决选举,没有节点投反对票,且获得赞成票数超过有权投票节点总数的1/2,则能成为Primary。否则进入下一轮选举。

因使用了Raft协议,加快  back-to-back选主,减少整个选举新主所需花费的总时间,相应的会增加WriteConcern(w:1)rollback的可能性。

Raft将时间分为多个term,term以连续的整数来标识,每个term以一次election开始,如果有server被选为leader,则该term的剩余时间该server都是leader。

有些term里,可能并没有选出leader,这时候会开启一个新term来继续选主,如上图中的t3。

2.怎么选举?

选举:

假设X是一个Secondary,那么X会定时检测是否需要选举自己成为Primary。其检测内容包括:

1) 是否集群中有其它节点认为自己是Primary?

2) X节点自己是否已经是Primary?

3) X节点自己是否有资格成为Primary?

如果这三个问题中的任何一个回答是否定的,那么X节点就不会试图把

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值