MongoDB中的高可用性

时间:2013-04-27 05:19:11

标签: mongodb document-oriented-db

每个人都说mongoDB是CAP定理中的CP!但是使用主从复制时,它也具有高可用性(如果主要失败,其余成员将自动尝试选择新的主要)。我的问题是,在哪些情况下(以及如何)它可以拥有AP(具有最终一致性)?

2 个答案:

答案 0 :(得分:8)

实际上,有两个部分的答案:

  1. 分片级别:每个数据段(C)只有一个权威分片,分片独立工作(P),如果分片不可用,其数据也不可用(A)

    < / LI>
  2. 副本集级别:只有一个权威主节点(C),如果需要,将选择一个新的主节点(P),如果没有主节点(在投票阶段应该只持续几秒,但是这就够了)你无法访问该节点上的数据。如果启用从辅助节点读取(最终一致性),则可以在投票阶段从辅助节点读取数据,但仍不能写入新数据。因此,它是一个CP系统。

  3. 一般情况下,您不会完全失去第三个特征,而是将其换成额外的延迟/开销,或者在短时间内不再使用它。

答案 1 :(得分:1)

将C,A,P全部放在一起是不可能的,这就是定理,你不能拥有它们,你只能拿两个。

见:

Where does mongodb stand in the CAP theorem?

相关问题