Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB中的高可用性_Mongodb_Document Oriented Db - Fatal编程技术网

MongoDB中的高可用性

MongoDB中的高可用性,mongodb,document-oriented-db,Mongodb,Document Oriented Db,大家都说mongoDB是CAP定理中的CP!但通过使用主从复制,它也具有高可用性(如果主复制失败,其余成员将自动尝试选择新的主复制)。我的问题是,在什么情况下(以及如何)它可以有AP(最终的一致性) 把C,A,p都加在一起是不太可能的,这就是定理,你不能把它们都加在一起,你只能取两个 见: 事实上,答案分为两部分: 分片级别:每个数据段只有一个权威分片(C),分片独立工作(p),如果分片不可用,其数据也不可用(a) 副本集级别:只有一个权威主节点(C),如果需要,将选择一个新的主节点(p),如果

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

把C,A,p都加在一起是不太可能的,这就是定理,你不能把它们都加在一起,你只能取两个

见:


事实上,答案分为两部分:

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

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


  • 一般来说,您不会完全失去第三个特性,但可以用它来换取额外的延迟/开销,或者在短时间内不具备它。

    我知道。我问它在mongodb中是如何实现的?在任何数据分布式数据存储中都是不可能的。