16

mongodb 文档建议副本集应该有奇数个投票节点。这是什么原因?

4

1 回答 1

19

让我们假设一个副本集有偶数个节点(例如 4 个)。然后发生了一个不幸的网络分区,将集合分成两半 (2 + 2)。哪个分区应该接受写入?第一的?第二?两个都?网络恢复后应该怎么办?这些都是难题。

具有奇数个节点完全消除了这些问题。该集合不能完全分成两半。所以更大的部分将接受写入(确切地说,节点必须看到超过一半的节点(包括自身)才能被选为主要节点。所以它是 1 of 1、2 of 3、3 of 5、4 of 7 等等)。

于 2013-04-22T15:09:40.653 回答