Serial schedule(串行化调度): 简答来说就如下图
equivalent schedule: 执行T1的结果和执行T2的结果一样
serializable schedule(可串行化调度): 结果与serial schedule 的结果一样 如下图d
冲突可串行化(conflict serializable schedule)
Conflict equivalent(冲突相等?) --- 需要满足两个条件,① T1和T2的所有action都一样 ② 两边每一对conflict operatio的顺序一样
conflict operation 包括 (RW,WR,WW) 上例子
上面哪一个的conflict operation : W1(Y)W2(Y), W2(X)W1(X),W1(X)W3(X)
下面哪一个的conflict operation : W1(Y)W2(Y), W1(X)W2(X), W2(X)W3(X)
明显不满足,所以不是conflict equivalent
另外一种判断就是画图
https://www.youtube.com/watch?v=U3SHusK80q0 这里贴一个网址,很详细说明了咋画 (因为有圆,所以是non-conflict serializable)
时间戳理解(Timestamp ordering)
实际例子
这个初始状态,TS全部设为0
按顺序实行,T1是R(x) 又因为TSR(X)--代表R 为0 而1>0 ,所以修改TSR(X)为1(这里的1和接下来的2,3都是指第几个transaction的)
同理,执行完T2后如上
执行完T3
然后接下来要执行T1的R(Y),因为1<3 所以无法执行,transaction 终止