代码之家  ›  专栏  ›  技术社区  ›  user3198603

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

  •  0
  • user3198603  · 技术社区  · 7 年前

    因为Mongo承诺一致性 Every read receives the most recent write or an error

    这是否意味着,当mongo说提交完成时,数据也以同步方式写入所有从机,就像只在那时一样 它能保证一致性吗?

    Mongo还提供了异步复制,这意味着将存在复制滞后(主/从)。因此一致性 无法保证。那么Mongo如何说它提供了一致性呢?

    更新时间:-

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

    但是,当可选地启用从二级数据库读取数据时,MongoDB最终会变得一致,可以读取过期的结果。 因此,Mongo系统可能在两者之间不一致,并且不提供最新的书面数据。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sergio Tulentsev    7 年前

    但是,当可选地启用从二级数据库读取数据时,MongoDB最终会变得一致,可以读取过期的结果。

    默认情况下,是。您可以使用 write concerns . 例如,如果您的副本集有三个节点,并且您使用 w=3 ,您的书写是一致的,您可以将其读回来。无陈旧读取。

    然而 ,客户端将在整个写入期间被阻止(它将等待更改传播)。因此,您必须决定您更喜欢什么:一致写入还是快速客户端。好消息是:您可以根据每个请求进行决定。无需重新配置/重启数据库(与其他一些数据库一样)