从我对白羊座算法的理解,为了支持必须使用WAL的酸性交易(提前记录):所有写入均已记录。据说可以使数据库能够在崩溃前通过不承诺的交易进行回滚更改。对于每个写作,我们记录有关实际写入(如何重做它,如何撤消它)的信息。在恢复阶段,我们分析日志以执行重做操作:我们阅读日志条目我们将更改应用于数据库我们将日志条目设置为完成然后,要执行撤消,写了一个新的日志条目(因为它毕竟是写入),然后在检查点期间将更改应用于数据库。在检查站期间,我想我们只对所有订婚条目进行重做。我没有找到有关以下情况的信息。检查站期间有崩溃在重做阶段,更改已应用于数据库之后,以及在日志更新之前/在将其设置为完成之后,会发生崩溃在这种