为什么MongoDB副本集中的最大节点数恰好为12?

时间:2013-05-30 22:25:01

标签: mongodb database-replication

抱歉这个愚蠢的问题,但为什么这个号码呢?起初我认为它必须只是奇数数字,但实际上它是 7 作为最大投票节点,总体上最大 > 12个节点。如果您希望运行更多,则必须使用已弃用的主/从配置。

那么如何解释这个数字?

2 个答案:

答案 0 :(得分:3)

副本集的所有成员都知道每个其他成员的当前状态。这是将节点总数限制为12的基本原理 - 比在每对节点之间的心跳中引入太多开销更多。

最多七个投票成员是为了避免选举减慢 - 因为你需要达成共识选举以选择新的主要选项,限制需要相互协调的节点数量将使事情更快。

答案 1 :(得分:2)

对于仍然对此感到疑惑的人,MongoDB的最新开发分支(编写此答案时为2.7.8)已将整体限制增加到50 SERVER-15060。假设在测试期间由于不可调和的问题而没有恢复,这一变化将在2.8生产版本中提供。注意:投票节点的最大数量保持为7,但是这种更改应该可以防止对需要超过12个节点的小众案例使用传统主/从配置。