解释用于测试冲突可串行化性的优先图(DBMS)

dbmsdatabasebig data analytics更新于 2026/1/12 20:07:17

冲突可串行化性以与某些串行执行相同的方式对任何冲突操作进行排序。如果一对操作对同一数据项进行操作,且其中一个是写操作,则称它们发生冲突。

这意味着,

  • Readi(x) readj(x) - 非冲突的读-读操作

  • Readi(x) writej(x) - 冲突的读-写操作。

  • Writei(x) readj(x) - 冲突的写-读操作。

  • Writei(x) writej(x) - 冲突的写-写操作。

其中,I 和 j 表示两个不同的事务 Ti 和 Tj。

优先图

现在考虑一个用于测试冲突可串行化的优先图。它用于检查冲突可序列化性。

优先图步骤

  • 对于每个事务 T,在图中添加一个节点或顶点。

  • 对于每个冲突对,从 Ti 到 Tj 添加一条边。

  • 如果图中存在环,则调度不可冲突序列化,否则调度可冲突序列化。

让我们考虑一些例子。

示例 1

存在环,因此不可冲突序列化。

示例 2

不存在循环,因此它是冲突可序列化的。

示例 3

不存在循环,因此它是冲突可序列化的。


相关文章