Mongo是否在异步模式下提供一致性?

时间:2018-01-14 15:41:12

标签: mongodb replication

由于Mongo承诺一致性,这意味着Every read receives the most recent write or an error

这意味着当mongo表示提交完成后,数据也以同步方式写入所有从属,因为只有 它可以保证一致性吗?

Mongo还提供异步复制,这意味着将存在复制延迟黑白主服务器和从服务器。因此一致性 无法承诺。那么Mongo如何说它提供了一致性呢?

更新: -

据我所知Where does mongodb stand in the CAP theorem?,Mongo提供了一致性 当system是单主系统时,默认情况下所有读操作都会转到主系统。

但是当选择性地启用从辅助节点读取时,MongoDB最终会变得一致,从而可以读取过时的结果。 因此,Mongo系统之间存在不一致的可能性,并且不提供最新的书面数据。

1 个答案:

答案 0 :(得分:0)

  

但是当选择性地启用从辅助节点读取时,MongoDB最终会变得一致,从而可以读取过时的结果。

默认情况下,是的。您可以使用write concerns调整此行为。例如,如果您的副本集有三个节点并且您使用w=3进行写入,则您的写入是一致的,您可以立即读取它们。没有陈旧的读物。

但是,客户端将在整个写入期间被阻止(它将等待传播的更改)。所以你必须决定你更喜欢什么:一致的写入或快速的客户端。好消息是:您可以根据要求做出决定。无需重新配置/重新启动数据库(如在其他一些数据库中)