面向二阶段锁的多版本数据库并发控制方法和系统技术方案

技术编号:21477196 阅读:58 留言:0更新日期:2019-06-29 04:44
本发明专利技术提供了一种面向二阶段锁提供高效的多版本数据库并发控制的方法和系统,利用二阶段锁作为并发控制的特点,高效的获取事务的时间戳;在多版本数据库中,为只读事务选取合适的数据读取版本,为读写事务选取合适的数据写入版本,使得只读事务和读写事务之间不会受到锁的竞争带来的影响。和传统的二阶段锁相比,只读事务和读写事务之间没有冲突,极大的提升了只读事务和读写事务的性能。和传统的时间戳方法相比,不需要一个中心的时间戳服务器,因此不会给事务带来额外的通信开销和性能瓶颈。

【技术实现步骤摘要】
面向二阶段锁的多版本数据库并发控制方法和系统
本专利技术涉及数据库并发处理
,具体地,涉及一种面向二阶段锁的多版本数据库并发控制方法和系统。
技术介绍
数据库事务极大的简化了开发人员对应用的开发:开发人员无需推导数据在并发访问下的正确性以及可靠性,只需要关注应用的实现逻辑。开发人员一般希望数据库能够提供可序列化隔离级别。然而,数据库的并发控制通常具有比较大的开销,尤其是当用户的事务变得复杂。因此,传统的数据库通常提供了比可序列化弱的隔离级别。一个较弱的隔离级别会给用户返回不一致的数据,降低用户的使用体验,并造成经济损失。有研究表明,一般复杂的事务为只读事务,即不修改数据库数据的事务。只读事务可以用多版本数据库高效的支持,只读事务只需要访问一个数据库快照,这样只读事务和读写事务之间不会受到影响。多版本数据库可以高效的支持只读事务,通常多版本数据库需要一个时间戳来支持,然而很难高效的实现时间戳。对于修改数据的读写事务,他需要一个时间戳来确认数据的新版本。对于只读事务来说,需要一个时间戳来选择数据读取的版本。因此,如何实现时间戳对事务来说非常重要。传统的系统中,通常使用一个中心服务器本文档来自技高网...

【技术保护点】
1.一种面向二阶段锁的多版本数据库并发控制方法,其特征在于,包括:读写事务开始步骤:读写事务开始时,获取事务本地的时间戳,记为事务时间戳;二阶段锁读取步骤:读写事务使用二阶段锁读取或者修改数据时,将事务时间戳更新为比所述数据的数据时间戳大;事务提交前步骤:读写事务使用二阶段锁提交事务前,将事务时间戳增加;事务提交时步骤:读写事务使用二阶段锁提交事务时,将事务时间戳写回数据中。

【技术特征摘要】
1.一种面向二阶段锁的多版本数据库并发控制方法,其特征在于,包括:读写事务开始步骤:读写事务开始时,获取事务本地的时间戳,记为事务时间戳;二阶段锁读取步骤:读写事务使用二阶段锁读取或者修改数据时,将事务时间戳更新为比所述数据的数据时间戳大;事务提交前步骤:读写事务使用二阶段锁提交事务前,将事务时间戳增加;事务提交时步骤:读写事务使用二阶段锁提交事务时,将事务时间戳写回数据中。2.根据权利要求1所述的面向二阶段锁的多版本数据库并发控制方法,其特征在于,还包括:只读事务读取步骤:将数据时间戳和事务时间戳进行比较,得到数值较大的时间戳,将数据的数据时间戳更新为所述时间戳;二阶段释放步骤:当当前要读取的数据的二阶段锁被释放后,只读事务使用事务时间戳读取一个数据库快照。3.根据权利要求1所述的面向二阶段锁的多版本数据库并发控制方法,其特征在于,所述获取事务本地的时间戳能够使用本地当前的物理时钟,或者将事务时间戳初始化为0。4.根据权利要求1所述的面向二阶段锁的多版本数据库并发控制方法,其特征在于,所述二阶段锁读取步骤中,事务时间戳更新需要在事务利用二阶段锁对数据上锁成功之后。5.根据权利要求1所述的面向二阶段锁的多版本数据库并发控制方法,其特征在于,所述事务提交...

【专利技术属性】
技术研发人员:陈榕陈海波臧斌宇管海兵魏星达
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1