📜  门| GATE-CS-2014-(Set-2)|第65章

📅  最后修改于: 2021-06-29 11:15:03             🧑  作者: Mango

考虑以下事务T1,T2,T3,T4的时间表S:

GATECS2014Q29以下哪一项是正确的?

(A) S是可序列化但不可恢复的
(B) S不能序列化冲突,但是可以恢复
(C) S既可冲突化又可恢复
(D) S既不是冲突可序列化的,也不是可恢复的答案: (C)
说明:为了检查可序列化的冲突,我们需要制作一个优先级图,如果该图包含一个循环,则它不是冲突可序列化的,否则它是可序列化的。

在这里,对于优先级图,只有两个有向边,一个来自T2-> T3(读写冲突),另一个来自T2-> T1(读写冲突),因此没有周期,因此调度是冲突的可序列化。

现在要检查可恢复性,我们需要检查任何一对操作之间的脏读操作(由事务Ti写入,然后由事务Tj读取,但在Ti提交之前)。如果没有脏读然后可以恢复计划,如果有脏读,那么我们需要检查提交操作。

这里没有脏读操作(因为T3和T1在T4读取T3和T1的Write(X)之前提交,而T2在T4读取T2的Write(Y)之前提交)。因此,该计划是可恢复的。

因此,选项C。这个问题的测验