目前我们使用的将数据写入MongoDB的
@collection.update id, c_doc, upsert: true, safe: true
是否设置安全标志设置为True确认该数据实际写入到奴隶,然后写入或者它只是证实了数据写入主?
目前我们使用的将数据写入MongoDB的
@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”。但你真的不应该使用它,因为它会损害性能。
我正在使用1.8和更高版本的默认写入关注。我认为writeconcern = 1确认写入磁盘。请确认。 – Sandeep
@Sandeep - 阅读我在上面评论中链接到的wiki(和Derick显然也链接到)。写1是一个磁盘,而不是副本。 – WiredPrairie
是的。我接到你了。 – Sandeep
[this](https://github.com/mongodb/mongo-ruby-driver/wiki/Write-Concern)wiki是否解决您的问题? – WiredPrairie