2013-05-30 59 views
1

对不起,这个愚蠢的问题,但为什么究竟这个数字?起初我以为它必须仅奇数数量,但实际上它是作为最大投票节点,和整体的最大的节点。如果您希望超出此范围运行,则必须使用已弃用的主站/从站配置。为什么MongoDB副本集中最大节点数为12?

那么如何解释这个数字呢?

回答

3

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

七名投票成员最大的是避免放缓选举 - 因为你需要有一个共识的选举来选择一个新的主要限制是需要彼此之间的协调将保持较快的事情节点的数量。

+0

但为什么数字12和7,为什么不像13或11和8和6?是来自测试,还是与局域网带宽关系或与时间延迟的关系? – Abdelouahab

+0

我想如果是13,你会问“但为什么13”,对吧? :)必须选择一些数字 - 大到足以希望有用但不会太大以至于性能会受到影响。 –

+1

所以这与'数学精确'的东西没有关系? – Abdelouahab

2

对于任何人仍然想知道这个问题,MongoDB的最新开发分支(在撰写此答案时为2.7.8)已将总体限制增加到了SERVER-15060的一部分。如果测试过程中由于不可调和的问题而未能恢复,此更改将在2.8版本发布中提供。注意:表决节点的最大数量保持在7,但是这种改变应该防止需要使用传统的主/从配置来处理需要多于12个节点的特殊情况。

相关问题