这是 4.0 版中一个非常有趣的变化,因为检查点似乎起到了与日志非常相似的作用。
检查点确保数据文件在最后一个检查点之前是一致的,包括最后一个检查点;即检查点可以充当恢复点。
好的,所以检查点为我提供了最后一个检查点的数据的持久视图。在发生崩溃的情况下,我在最后一个检查点之后丢失了所有数据。
WiredTiger 日志保留检查点之间的所有数据修改。如果 MongoDB 在检查点之间退出,它会使用日志重放自上一个检查点以来修改的所有数据。
当 Journal 跟踪所有操作时,这有点额外的耐用性。它就像一个我们可以在失败后重新申请的清单。
日志记录包括由初始写入引起的任何内部写入操作。例如,对集合中文档的更新可能会导致对索引的修改;WiredTiger 创建一个日志记录,其中包括更新操作及其关联的索引修改。
似乎检查点的目的是快速移动,但有一次丢失一分钟数据的风险。而该杂志是关于对一切进行会计处理的。那么为什么两者都有呢?似乎让 Journal 覆盖了 Checkpoints 应该提供的任何收益。