[发明专利]数据库的多版本并发控制方法及数据库系统在审
| 申请号: | 202110728250.7 | 申请日: | 2021-06-29 | 
| 公开(公告)号: | CN113505114A | 公开(公告)日: | 2021-10-15 | 
| 发明(设计)人: | 陈康;武永卫;姜进磊;刘旭阳 | 申请(专利权)人: | 清华大学 | 
| 主分类号: | G06F16/21 | 分类号: | G06F16/21 | 
| 代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 马军芳;张艳 | 
| 地址: | 100089*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 数据库 版本 并发 控制 方法 系统 | ||
本申请实施例提供一种数据库的多版本并发控制方法及数据库系统,涉及数据库技术领域。该方法包括:在目标事务启动时,为所述目标事务生成事务ID,所述事务ID包括启动所述目标事务的工作线程的线程号以及所述工作线程的当前本地计数值;获取数据库的逻辑快照,根据所述逻辑快照在待操作的目标数据记录对应的版本链上查找所述目标事务的目标可见版本;基于所述目标可见版本在目标数据记录的版本链上进行数据记录的读取或更新操作。本技术方案能够提供快照隔离的隔离级别、提高事务的运行效率。相比于现有方法,该并发控制方法具有更低的开销,可以显著增加数据库的事务处理能力,最高可达4.24倍的加速比。
技术领域
本申请涉及数据库技术领域,具体地,涉及一种数据库的多版本并发控制方法及数据库系统。
背景技术
数据库系统是现代计算机应用所依赖的重要软件之一。数据库系统具有事务处理接口,在运行事务时,需要借助并发控制算法来提供一定的隔离性保证。并发控制算法的设计会在很大程度上影响数据库系统的事务处理性能。
传统数据库使用了基于内存-磁盘的两层存储架构,内存用来提供对数据的运行时访问,磁盘用于保证数据的持久化。非易失内存(Non-VolatileMemory,NVM)是一种新型存储介质,它既可以像内存一样支持字节寻址,又可以像磁盘一样持久化存储数据。借助NVM可以实现具有单层存储结构的新一代数据库。然而,由于NVM的访问速度要快于磁盘,磁盘不再是NVM单层数据库系统的性能瓶颈因素,因此需要使用更高效的并发控制算法才能充分发挥NVM的性能。
使用多版本并发控制算法是提高数据库事务处理性能的常用方法,多版本并发控制可以提供快照隔离的隔离级别,增加事务处理的并发程度。但是,传统的支持快照隔离的并发控制算法往往使用一个全局计数器来为事务分配事务ID,各个工作线程在启动事务时,都需要操作这个全局计数器,这将成为数据库系统的性能瓶颈因素,影响数据库的性能,尤其在工作线程数目较多时,事务的处理效率反而降低。
发明内容
本申请实施例提供一种数据库的多版本并发控制方法及数据库系统,以解决上述技术问题。
第一方面,本申请实施例提供一种数据库的多版本并发控制方法,包括:在目标事务启动时,为所述目标事务生成事务ID,所述事务ID包括启动所述目标事务的工作线程的线程号以及所述工作线程的当前本地计数值,在生成事务ID后,所述工作线程的本地计数值递增i,i为不小于1的正整数;获取数据库的逻辑快照,根据所述逻辑快照在待操作的目标数据记录对应的版本链上查找所述目标事务的目标可见版本;其中,所述逻辑快照包含所述数据库中运行的各个工作线程对应的最新所完成事务的事务ID,所述版本链上包括目标数据记录的多个版本;基于所述目标可见版本,通过所述目标事务在目标数据记录的版本链上进行数据记录的读取或更新操作。
第二方面,本申请实施例提供一种数据库系统,包括:事务ID分配模块,用于在目标事务启动时,为所述目标事务生成事务ID,所述事务ID包括启动所述目标事务的工作线程的线程号以及所述工作线程的当前本地计数值,在生成事务ID后,所述工作线程的本地计数值递增i,i为不小于1的正整数;逻辑快照获取模块,用于获取数据库的逻辑快照;其中,所述逻辑快照包含所述数据库中运行的各个工作线程对应的最新所完成事务的事务ID,所述版本链上包括目标数据记录的多个版本;数据记录操作模块,用于根据所述逻辑快照在待操作的目标数据记录对应的版本链上查找所述目标事务的目标可见版本,并基于所述目标可见版本,通过所述目标事务在目标数据记录的版本链上进行数据记录的读取或更新操作。
本发明提出了一种支持快照隔离的多版本并发控制方法,该方法使用各个线程的本地计数器来为事务分配事务ID,并使用每个线程对应的最新所完成事务的事务ID来表示逻辑快照。相比现有的支持快照隔离的并发控制方法,本发明提出的方法无需维护全局计数器,各工作线程只需操作各自对应的本地计数器即可,减少了资源竞争,能有效提升事务处理效率,事务吞吐量能够随着线程数目的增加而很好地扩展。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110728250.7/2.html,转载请声明来源钻瓜专利网。





