我对 mongodb c# 驱动程序中的 WriteConcern 设置有点困惑。
WriteConcern.Acknowledged 是否意味着 Journal=true 和 FSYNCED =true?
如果我只是想确保它写入主节点,WriteConcern.Acknowledged 是否足够?
我对 mongodb c# 驱动程序中的 WriteConcern 设置有点困惑。
WriteConcern.Acknowledged 是否意味着 Journal=true 和 FSYNCED =true?
如果我只是想确保它写入主节点,WriteConcern.Acknowledged 是否足够?
WriteConcern = Acknowledged
仅表示主节点已收到写操作。无法保证在您的 write 调用返回之前将数据写入磁盘。如果要确保将数据写入主节点上的磁盘,则需要journal=true
and fsync=true
,您可以在连接字符串中执行此操作。
我不是 C# 程序员,但仅从语义上我会说 - 不,不是。
日志和 Fysncing 写入与在某个特定时间确认其存在有很大不同mongod
,老实说,两者同时设置是没有意义的,因为您实际上是在等待它写入磁盘两次:/
。
您最好选择 Journal;如果您需要日志写入,那就是。再次,日志写入与确认写入不同,日志在返回响应之前给人一种磁盘持久性的感觉,但是,确认写入只需要接收才能返回,而不是写入磁盘。
因此,WriteConcern.Acknowledged
不,与您的旧设置不同,Journal= true and FSYNCED =true
但是我会说这已经足够了,而且您可能对这些设置有些矫枉过正。
我注意到您的标题中有设置W = 1
。这不是 Fsync 而是acknowledged
. 因此,要获得与以前相同的写入,您需要做的就是在您的写入关注点中实际添加一个日志选项,WriteConcern.Acknowledged
这应该会为您提供与以前相同的写入关注点。