当发生崩溃时,稳定存储中的日志具有给定顺序的以下记录:
<T1 start>, <T1,A,30,40>, <T2 start>, <T2,B,40,20>, <T1,C,25,35>, <T3 start>, <T1 commit>,
<T2,A,40,60>, <T3,C,35,45>
A部分:立即修改数据库
T1>重做
T2>撤消
T3>撤消
BEFORE CRASH AFTER RECOVERY
A>60 A>40
B>20 B>40
C>45 C>35
对于崩溃之前,我非常有信心我的答案是正确的。我想知道我恢复后是否正确?如果没有,那为什么呢?
B部分:延迟的数据库修改
T1>重做
T2>不采取行动
T3>无动作
BEFORE CRASH AFTER RECOVERY
A>40 A>40
B>40 B>40
C>35 C>35
在这方面,我也有信心我的崩溃前值是正确的,但是我怀疑恢复后的值可能是错误的。如果错了,请向我解释为什么错了?