mongodb - MongoDB Replica Sets如何实现强一致性?

标签 mongodb replication distributed-system

在 MongoDB 文档中,here ,有人提到,在副本集中,即使有多数 readConcern,我们也可以实现最终一致性。我想知道当我们在读取和写入中都占多数导致分布式系统中的法定人数(R + W> N)时,这怎么可能?我希望在这种情况下有一个强大的、一致的系统。这也是 Cassandra 为实现强一致性而使用的技术。

有人可以为我澄清一下吗?

最佳答案

MongoDb 在强一致性方面被认为不是很好。如果您有典型的分片和复制设置以提高一致性,则需要权衡数据库的某些性能。如您所知,您只能在副本集的主服务器上执行写操作。默认情况下,您也只能从中读取。这可能是您可以从 MongoDb AFAIK 获得的最强一致性,因为其他节点仅用于复制、故障转移和可用性原因。并且您只能从辅助节点读取最新数据并不重要的操作以及长时间运行的操作,例如聚合。

如果设置分片,则可以将大部分读/写操作卸载到不同的主节点。我认为,当涉及到 MongoDb 时,您可以做的就是提高一致性和性能,尤其是对于较大的数据集。

关于mongodb - MongoDB Replica Sets如何实现强一致性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38026553/

相关文章:

mongodb - MongoDB的连接过多

node.js - 如何将1个mongoDB集合划分为2个或更多集合

MongoDB 写入和锁定进程

mysql - 分布式数据库用例

algorithm - 领导人选择

Mongodb查询特定月份|年份不是日期

python - App Engine,pymongo.errors.ServerSelectionTimeoutError : connection closed, 连接已关闭,连接已关闭”

mysql - Wireshark 我怎么知道数据包是否加密?

sql - 你能从 SQL Server 2012 复制到 2008 R2

Java RMI 添加数字