目前我们正在使用
@collection.update id, c_doc, upsert: true, safe: true
将安全标志设置为 True 是否确认数据实际上已写入从属设备然后写入,或者它只是确认数据已写入主设备?
目前我们正在使用
@collection.update id, c_doc, upsert: true, safe: true
将安全标志设置为 True 是否确认数据实际上已写入从属设备然后写入,或者它只是确认数据已写入主设备?
safe = true 表示主节点已确认写入。它还不能保证被复制到从属服务器,也不能假设它存储在磁盘上。https://github.com/mongodb/mongo-ruby-driver/wiki/Write-Concern上的文档解释了不同的写入问题。
w= 选项都没有确认写入磁盘,因为您需要“fsync=1”。但是你真的不应该使用它,因为它会损害性能。