知识卡片

确认不是持久化

普通读书笔记卡 · 1720

内容

MongoDB standalone 中,写确认只能证明服务器处理过请求;如果数据尚未落盘,重启仍可能丢失已确认更新。开启 journal 后,确认才更接近“可恢复”。发散:ack 的含义必须拆开看,它可能只代表收到、应用、落日志或复制完成。

参考来源

- 位置:《分布式系统与一致性》第5章《文档数据库MongoDB》写入日志(journaling)一节(源文件:_epub-src/OEBPS/Text/chapter9.xhtml) - 结论依据:原文说明为防止丢失确认更新,MongoDB采用写入日志技术,开启后"每次把写操作应用到对应的集合中前,都会把这次写操作记录在一个日志(journal)文件中",意味着不开启journal时确认与持久化之间存在缺口。 - 原始内容:为了防止出现丢失确认更新,MongoDB采用了写入日志(journaling)技术。MongoDB可以通过write concern:j选项来开启写入日志。在开启了这个选项后,MongoDB每次把写操作应用到对应的集合中前,都会把这次写操作记录在一个日志(journal)文件中。