如右图所示的调度,其中事务T1、T2仅对数据项A、B进行操作,则该调度 ( )

最全题库2022-08-02  59

问题 如右图所示的调度,其中事务T1、T2仅对数据项A、B进行操作,则该调度 ( ) ;假如该调度已经产生死锁,如果要从事务T1,T2中进行回滚以解除死锁,从代价最小的角度考虑,应回滚事务(请作答此空)。A.T1B.T2C.T1和T2D.T1或T2

选项 A.T1
B.T2
C.T1和T2
D.T1或T2

答案 B

解析 本题考查事务调度的知识。图中的调度,事务T1对B、A两个数据项加锁中间无解锁指令,满足2PL协议;事务T2对A、B两个数据项加锁中间无解锁指令,也满足2PL协议。2PL协议不能避免死锁。图中事务T1先对数据项B加了独占锁,事务T2先对数据A加了共享锁;随后事务T2申请数据项B上的共享锁,只能等待事务T1释放B上的独占锁;事务T1申请数据项A上的独占锁,只能等待事务T2释放A上的共享锁。两个事务相互等待造成死锁。死锁的解除由DBMS来完成。需要在造成死锁的多个事务中选择一个回滚代价最小的事务进行强制回滚,并将该事务置于事务队列中稍后执行。图中事务T1对数据B已经做了修改,事务T2只是读取了数据A,相对而言,回滚事务T2代价最小。因此,本题答案为B选项。
转载请注明原文地址:https://tihaiku.com/congyezige/2419355.html

最新回复(0)