下面的操作是按照提交给DBMS的顺序列出的。
顺序S1:T1:R(X),T2:W(X),T2:W(Y),T3:W(Y),T1:W(Y),T1:Commit, T2 Commit, T3 Commit
顺序S2:T1:R(X),T2:W(Y),T2:W(X),T3:W(Y),T:W(Y),T1:Commit, T2 I Commit, T3 1 Commit
对于每种顺序和下面的并发控制机制,描述这些并发控制机制是如何处理操作的执行顺序的。假设事务T的时间戳为i。对于基于加锁的并发控制机制,按照相应的加锁协议,需要在操作序列中添加必要的加锁和解锁操作,DBMS按照给出的顺序执行操作,如果事务被阻塞(在恢复继续执行之前所有操作均进入队列),DBMS继续未阻塞事务的下一个操作(按照给出的顺序)
(1)使用带时间戳的严格2PL来进行死锁预防。
(2)使用严格2PL来进行死锁检测(若产生死锁,画出等待图)。
(3)保守的(并且是严格的,也就是在事务结束前一种保证锁)2PL
(4)乐观的井发控制
(5)带缓存读写操作和 Thomas写规则的时间戳井发控制
(6)多版本并发控制。