数据库 串行化 时间戳笔记

Serial schedule(串行化调度): 简答来说就如下图

数据库 串行化 时间戳笔记

equivalent schedule: 执行T1的结果和执行T2的结果一样

serializable schedule(可串行化调度): 结果与serial schedule 的结果一样 如下图d

数据库 串行化 时间戳笔记

冲突可串行化(conflict serializable schedule)

数据库 串行化 时间戳笔记

Conflict equivalent(冲突相等?) --- 需要满足两个条件,① T1和T2的所有action都一样  ② 两边每一对conflict operatio的顺序一样

conflict operation 包括 (RW,WR,WW)  上例子

数据库 串行化 时间戳笔记

上面哪一个的conflict operation : W1(Y)W2(Y), W2(X)W1(X),W1(X)W3(X)

下面哪一个的conflict operation : W1(Y)W2(Y), W1(X)W2(X), W2(X)W3(X)

明显不满足,所以不是conflict equivalent

另外一种判断就是画图

https://www.youtube.com/watch?v=U3SHusK80q0 这里贴一个网址,很详细说明了咋画 (因为有圆,所以是non-conflict serializable)

数据库 串行化 时间戳笔记

数据库 串行化 时间戳笔记

 

时间戳理解(Timestamp ordering)

数据库 串行化 时间戳笔记

实际例子

数据库 串行化 时间戳笔记

这个初始状态,TS全部设为0

数据库 串行化 时间戳笔记

按顺序实行,T1是R(x) 又因为TSR(X)--代表R 为0 而1>0 ,所以修改TSR(X)为1(这里的1和接下来的2,3都是指第几个transaction的)

数据库 串行化 时间戳笔记

同理,执行完T2后如上

数据库 串行化 时间戳笔记

执行完T3

然后接下来要执行T1的R(Y),因为1<3 所以无法执行,transaction 终止

 

相关文章:

  • 2022-12-23
  • 2022-02-12
  • 2022-03-06
  • 2021-05-22
  • 2022-02-09
  • 2021-12-08
猜你喜欢
  • 2022-12-23
  • 2022-02-09
  • 2022-01-26
  • 2021-10-18
  • 2022-02-26
  • 2022-01-18
相关资源
相似解决方案