是怎样的木筏共识算法从MongoDB的比MongoDB的需要等因素的影响(优先级,例如)因素,而选举的主要事实其他初选过程有什么不同?
在MongoDB 2.4中,共识方法的一些关键差异是:
Raft使用强大的领导者模型.领导者负责管理从领导者到其他服务器的复制和数据流.在MongoDB副本集中,辅助节点遵循上游主机的操作日志(oplog),该主机可以是具有较新oplog的主节点或辅助节点.
Raft只有三个节点状态需要考虑:领导者(主要),跟随者(次要)或候选者(指定的主要).MongoDB的具有附加的节点状态考虑在内的潜在的错误状态,诸如RECOVERING
或SHUNNED
节点,或延迟副本集成员.
在Raft中,每个节点只能在每个选举期间投票一次候选节点.MongoDB允许每个节点的投票作为副本集配置的一部分进行调整,因此一些节点可能是非投票的或可能有多个投票(注意:从MongoDB 2.5开发分支开始,不推荐使用多投票配置).
Raft使用联合共识方法,允许群集在配置更改期间继续运行.MongoDB需要严格的大多数投票节点来选择新的主节点; 当选举正在进行时,副本集没有主要内容,不能接受写入.
有关更多详细信息,您应该将" 寻找可理解的共识算法"的Raft论文与MongoDB副本集选举的文档进行比较.