两阶段锁定如何帮助避免不可序列化的计划?

时间:2014-05-03 14:56:58

标签: concurrency transactions locking serial-processing

现在,我在这里有两笔交易。 一致性要求是A = 0 v B = 0,其中A = B = 0初始值

T1: read(A);
    read(B);
    if A=0 then B:=B+1;
    write(B).

T2: read(B);
    read(A);
    if B=0 then A:=A+1;
    write(A).

我知道没有并行执行导致可序列化的计划。所以我想应用两阶段锁定来保证可串行化。

剂量两相锁定如何保证可串行性?你能举一个这两笔交易的例子吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

正如您所提到的,没有并行执行导致可序列化的时间表,即时间表不是冲突序列化。

如果时间表不是冲突可序列化的,那么两阶段锁定协议会导致死锁。所以你不能使用两阶段锁定来保证可串行化。