[发明专利]数据库的多版本并发控制方法及数据库系统在审
| 申请号: | 202110728250.7 | 申请日: | 2021-06-29 | 
| 公开(公告)号: | CN113505114A | 公开(公告)日: | 2021-10-15 | 
| 发明(设计)人: | 陈康;武永卫;姜进磊;刘旭阳 | 申请(专利权)人: | 清华大学 | 
| 主分类号: | G06F16/21 | 分类号: | G06F16/21 | 
| 代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 马军芳;张艳 | 
| 地址: | 100089*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 数据库 版本 并发 控制 方法 系统 | ||
1.一种数据库的多版本并发控制方法,其特征在于,包括:
在目标事务启动时,为所述目标事务生成事务ID,所述事务ID包括启动所述目标事务的工作线程的线程号以及所述工作线程的当前本地计数值,在生成事务ID后,所述工作线程的本地计数值递增i,i为不小于1的正整数;
获取数据库的逻辑快照,根据所述逻辑快照在待操作的目标数据记录对应的版本链上查找所述目标事务的目标可见版本;其中,所述逻辑快照包含所述数据库中运行的各个工作线程对应的最新所完成事务的事务ID,所述版本链上包括目标数据记录的多个版本;
基于所述目标可见版本,通过所述目标事务在目标数据记录的版本链上进行数据记录的读取或更新操作。
2.根据权利要求1所述的方法,其特征在于,所述获取数据库的逻辑快照,包括:
判断是否有非目标事务正在生成逻辑快照;
若没有非目标事务正在生成逻辑快照,则根据所述数据库中运行的各个工作线程最新所完成事务的事务ID生成一个新的逻辑快照;
将新生成的逻辑快照写入快照缓冲区;
获取快照缓冲区中的最新快照作为所述数据库的逻辑快照。
3.根据权利要求2所述的方法,其特征在于,在判断是否有非目标事务正在生成逻辑快照之后,所述方法还包括:若有非目标事务正在生成逻辑快照,则获取快照缓冲区中的最新快照作为所述数据库的逻辑快照。
4.根据权利要求1所述的方法,其特征在于,所述版本链包括一个头节点和多个版本节点,所述头节点包括目标数据记录的ID和指向最新版本的指针,所述版本节点包括版本创建者的事务ID、该版本的载荷数据以及指向前一版本的指针,所述根据所述逻辑快照在待操作的目标数据记录对应的版本链上查找所述目标事务的目标可见版本,包括:
根据待操作的目标数据记录的ID在数据库中获取目标数据记录的版本链;
设定所述版本链中的最新版本为当前考察的目标版本;
获取目标版本的创建者的事务ID;
根据所述创建者的事务ID中的线程号,从获取的所述逻辑快照中的各事务ID中确定相应线程号所对应的本地计数值;
判断所述创建者的事务ID中的本地计数值是否不大于根据所述逻辑快照确定的所述本地计数值;
若不大于,判断所述创建者的提交状态是否为已提交;
若为已提交,则将当前目标版本确定为所述目标可见版本。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述创建者的事务ID中的本地计数值大于根据所述逻辑快照确定的所述本地计数值,或者,所述创建者的提交状态不为已提交,设定当前目标版本的前一版本为新的目标版本,然后跳转至所述获取目标版本的创建者的事务ID。
6.根据权利要求4所述的方法,其特征在于,所述基于所述目标可见版本,通过所述目标事务在目标数据记录的版本链上进行数据记录的读取或更新操作,包括:若目标事务为读事务,通过所述目标事务从所述版本链中读取所述目标可见版本的载荷数据。
7.根据权利要求4所述的方法,其特征在于,所述基于所述目标可见版本,通过所述目标事务在目标数据记录的版本链上进行数据记录的读取或更新操作,包括:
若目标事务为写事务,通过所述目标事务为所述目标数据记录的版本链添加记录锁;
检测所述版本链上是否存在比所述目标可见版本更新的版本、且所述更新的版本的创建者的提交状态为已提交或者运行中;
若所述版本链上不存在满足上述条件的版本,则通过所述目标事务在所述版本链上进行数据记录的更新操作。
8.根据权利要求7所述的方法,其特征在于,所述通过所述目标事务在所述版本链上进行数据记录的更新操作,包括:
在数据库的存储层中为目标数据记录创建一个新的版本节点;
在新创建的版本节点上写入目标事务的ID和载荷数据;
维护版本链指针,使新创建的版本节点的指针指向当前版本链中的最新版本,并使当前版本链的头节点的指针指向所述新创建的版本节点;
释放所述版本链上的记录锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110728250.7/1.html,转载请声明来源钻瓜专利网。





