考虑以下事务 T1、T2 和 T3 的时间表:
以下哪个时间表是上述时间表的正确序列化?
(A) T1->>T3->>T2
(B) T2->>T1->>T3
(C) T2->>T3->>T1
(D) T3->>T1->>T2答案:(一)
解释:
T1 可以在 T2 和 T3 之前完成,因为在上图中 T1 的 Write(X) 与 T2 和 T3 中发生在 T1 的 Write(X) 之前的操作之间没有冲突。
T3 应该可以在 T2 之前完成,因为 T3 的 Read(Y) 与 T2 的 Read(Y) 不冲突。同样,T3 的 Write(X) 与 T2 的 Read(Y) 和 Write(Y) 操作不冲突。
解决这个问题的另一种方法是创建一个依赖图并对依赖图进行拓扑排序。拓扑排序后,我们可以看到序列T1,T3,T2。
这个问题的测验