这就是 MongoDB 对日志记录的看法:
为了在发生故障时提供持久性,MongoDB 使用预写日志记录到磁盘日志文件。
但是对于WiredTiger:
重要的
在写入操作之间,当日志记录保留在 WiredTiger 缓冲区中时,更新可能会在 mongod 硬关闭后丢失。
如果 WiredTiger 中的日记功能不能完全保证不会丢失更新,我们必须在编写应用程序时注意某些文档可能会“消失”,那么考虑到它会减慢写入速度,为什么还要启用日记功能呢?
似乎如果您不能丢失更新*,则必须选择带日记功能的MMAPv1,如果可以的话,您可能更愿意选择不带日记功能的 WiredTiger 。
(*) 由于回滚,您仍然可能会丢失 MongoDB 集群中的更新,尽管您可以使用w: majority write concern或对 rollback/ folder 中的文件做一些事情来避免回滚。