可恢复和级联计划



在数据库事务管理中。严格的时间表是

    T1        T2     
    R(A)
    W(A)
              R(A)
              W(A)
   Commit;
              Commit;

这是一个严格的时间表。 因为我们遵循基本规则。 如果 T2 读取 T1 写入的值,则 T1 提交应在 T2 提交之前。

此计划也是级联计划的子集。 因为如果 T1 失败,T2 将被回滚。 因此,严格时间表是级联时间表的子集。此时间表也是可恢复的时间表。因此,我们可以得出结论,级联计划是可恢复计划的子集

    T1        T2      
    R(A)
    W(A)
    Commit;
              R(A)
              W(A)
              Commit;

上述时间表是级联较少且可恢复的。但随后我想到的另一个疑问是。这个时间表是什么(如下)。

    T1        T2       T3
    R(A)
    W(A)
              R(A)
              W(A)
    Commit;
              Commit;
                       R(A)
                       W(A)
                       Commit;
T1 和 T2 是级联的,

但 T3 不是。是级联的和可恢复

的吗

在这里,事务 T1 和 T2 是级联和可恢复的(因为 T2 读取由 T1 写入的 A,而 T1 在 T2 之前提交)。T3 和 (T1 + T2) 是无级联的。由于所有无级联计划都是可恢复的,因此所有 T1、T2、T3 都是可恢复的。

看看这个 : http://coddicted.com/recoverable-and-cascadeless-schedules/

T1 和 T2 是可恢复的,因为首先开始的事务是首先提交的事务。此外,T1 在 W(A) by T2 之后的任何故障都会导致两个事务回滚,因此 T1 和 T2 也是级联的。

最新更新