首页 理论教育分布式数据库技术:多版本并发控制和快照隔离

分布式数据库技术:多版本并发控制和快照隔离

【摘要】:在多版本并发控制方法中经常采用异地更新技术,即不是直接在旧数据项上修改,而是先创建一个数据项的新版本,然后让新版本取代旧版本。使用MVCC的好处是,读请求不会因为存在写操作而被阻塞。数据库中的只读访问常常检索的是已被提交的数据项版本。系统的开销主要发生在相同数据项的多个版本上。有一种称为快照隔离的技术用于实现支持MVCC的数据库。SI的开销虽然小,但弱化了可串行化。SI包含以下两个重要性质。

在多版本并发控制(multi-version concurrency control,MCC或MVCC)方法中经常采用异地更新技术,即不是直接在旧数据项上修改,而是先创建一个数据项的新版本,然后让新版本取代旧版本。典型情况下,MVCC使用时标(timestamps)或以递增序标注的事务标识(TID)来实现和标识新的数据版本拷贝。使用MVCC的好处是,读请求不会因为存在写操作而被阻塞。

数据库中的只读访问常常检索的是已被提交的数据项版本。系统的开销主要发生在相同数据项的多个版本上。有一种称为快照隔离(snapshot isolation,SI)的技术用于实现支持MVCC的数据库。SI的开销虽然小,但弱化了可串行化。

SI假设无论何时事务写一个数据项x,就创建一个x的新版本,并在该事务提交时让该版本生效。如果事务Ti和Tj同时要写数据项x,Ti在Tj前提交,且在这两个事务之间没有其他事务提交和写x,则Ti写的x版本排序在Tj写的x版本排序前面。

SI包含以下两个重要性质。(www.chuimin.cn)

●读快照(snapshot read):为每个事务提供其启动时数据项的最新快照,以保证高事务并发度,并不受写操作的干扰。

●写快照(snapshot write):在事务不可见时发生写。不允许两个并发事务更新同一个数据项。