SI 异常
事务依赖类型:
- WR依赖:T1写 -> T2读
- WW依赖:T1写一个版本 -> T2更新版本
- RW反依赖:T1写一个版本 -> T2读前一个版本。读写冲突,对SSI很重要
异常
如果 Serializable graph 有环,则不可串行化,无法拓扑排序。
Serializability 理论
定理1
每个有环的 Serializable graph 中都必定有连续的 T1 -(rw)-> T2 -(rw)-> T3 序列,而且T3是环中首先提交的事务。
推论2
T1和T2并发,T2和T3并发。
SSI
- 只检测 rw反依赖 序列,会有 false positive。
- 使用 SIREAD 锁进行运行时rw反依赖检测。
- 扩展:PSSI (Precisely Serializable Snapshot Isolation) 去除所有的 false positives.
参考:p1850_danrkports_vldb2012
网友评论