守护独立性与约束保留快照隔离技术解析
1. 引言
在过去几十年里,快照隔离(SI)已成为数据库管理系统(DBMS)中并发控制的首选事务隔离模式之一。在 SI 中,每个事务操作自己的数据库私有副本(即快照)。对于并发事务的提交,需要整合这些单独快照的结果。若存在写冲突,即多个事务写入同一数据对象,那么只有一个事务允许提交,其他事务若未以其他方式自然终止则必须中止。
1.1 SI 的优势与不足
- 优势 :SI 避免了许多与读未提交(RU)和读已提交(RC)策略相关的更新异常,如脏读和不可重复读。同时,随着多版本并发控制(MVCC)的广泛使用,它实现高效,避免了基于锁的严格两阶段锁定(SS2PL)带来的许多性能瓶颈。
- 不足 :SI 允许一些在视图序列化下不会出现的不良行为,如读写偏差。
1.2 扩展 SI 的尝试
为实现真正的视图序列化,人们对扩展 SI 产生了浓厚兴趣。由此开发出了可序列化快照隔离(SSI),它是一种乐观的方法。在标准 SI 的基础上,SSI 会查找危险结构,即并发事务在多版本冲突图中的两个连续读写边序列。若发现此类结构,参与事务之一需中止而不提交结果。然而,危险结构的存在只是并发事务在 SI 下不可序列化的必要条件,而非充分条件,因此 SSI 策略会产生误判。
1.3 示例说明
假设有一个数据库模式 E0,包含 n 个整数值数据对象 d0, d1, …, dn - 1。事务 τi 会将 di 的值替换为 d(i + 1) mod n 的当前值。在 SI
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



