MongoDB 关注强一致性

MongoDB write concern for strong consistent

我有 Java 个进程来更新 MongoDB 3.6.0。我有 1 个主副本,2 个副本。流量是

  1. 更新具有特定“_id”的文档中的一些数据

  2. 从副本读取

有时,read 获取较旧版本的 document.We 决定使用 WriteConcern 来解决此问题 -

WriteConcern(WriteConcern.W3.withWTimeout(100, TimeUnit.MILLISECONDS).withJournal(false));

随着 WriteConcern 的引入,会有一些延迟,为了避免过多的延迟,我跳过了更新 Journal 日志

上面的配置行得通吗?

这是写作过程的高级视图:

  1. 数据写入快照,
  2. 从快照到日志~0.1s
  3. 从快照到磁盘1秒

如果您设置 writeConcern = 3,并且一台服务器出现故障,用户将永远不会收到确认。

此外,禁用日记不会加快复制速度。我建议使用 writeConcern majority,并保留日志。但是,如果您更愿意禁用日记功能,那么唯一的问题就是在 3.

中的 1 之间写入的数据