[发明专利]事务处理方法、装置、计算机设备及存储介质有效
申请号: | 202110115847.4 | 申请日: | 2021-01-28 |
公开(公告)号: | CN112463311B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 李海翔 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/27 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 祝亚男 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事务处理 方法 装置 计算机 设备 存储 介质 | ||
1.一种事务处理方法,其特征在于,所述方法包括:
响应于目标事务的读写操作,获取所述目标事务的读集和写集;
响应于所述目标事务的验证指令,确定所述目标事务的逻辑开始时刻和逻辑提交时刻;
响应于所述逻辑开始时刻和所述逻辑提交时刻符合所述目标事务的并发一致性级别,基于所述写集更新所述逻辑开始时刻,其中,所述并发一致性级别对数据库中所有类型的事务在数据项上的行为进行级别划分,所述并发一致性级别以事务为单位,在同一个数据库系统内允许不同的事务满足不同的并发一致性级别;
响应于更新后的逻辑开始时刻小于或等于所述逻辑提交时刻,提交所述目标事务;
其中,所述并发一致性级别包括:串行化,即所有事务在一个逻辑的系统内部都串行排队执行;严格化,即所有事务中,写事务串行执行,但允许只读事务和非只读事务并发执行;线性化,即所有事务允许并发执行,但对于并发执行的事务,事务间的读写关系满足实时Real-Time的要求;顺序化,即在一个会话内结果值是稳定的,且并发事务之间满足可串行化要求;可串行化,即在一个会话内结果值是不稳定的,且并发事务之间满足可串行化要求;因果可重复读,即在一个系统内满足因果关系,但不要求并发事务之间满足可串行化;可重复读,即不考虑因果关系的可重复读;读已提交,即不考虑因果关系的读已提交;读写未提交,即任何数据异常、不一致都允许发生。
2.根据权利要求1所述的方法,其特征在于,所述基于所述写集更新所述逻辑开始时刻包括:
获取所述写集中的至少一个数据项的至少一个待写事务信息,所述至少一个待写事务信息分别用于标识正在修改所述至少一个数据项的事务;
响应于所述至少一个待写事务信息均为空,调整所述逻辑开始时刻;
响应于所述至少一个待写事务信息中的任一待写事务信息不为空,回滚所述目标事务。
3.根据权利要求2所述的方法,其特征在于,所述调整所述逻辑开始时刻包括:
对于所述至少一个数据项中的任一数据项,将所述任一数据项的待写事务信息获取为所述目标事务的事务标识;
将所述逻辑开始时刻更新至大于所述任一数据项的最大读事务时间戳,所述最大读事务时间戳用于表示读取过所述任一数据项的事务的逻辑提交时刻中的最大值;
响应于更新后的逻辑开始时刻和所述逻辑提交时刻符合所述目标事务的并发一致性级别,基于活跃事务集合调整所述逻辑开始时刻,所述活跃事务集合用于标识已开始执行但未提交完毕的事务;
响应于更新后的逻辑开始时刻和所述逻辑提交时刻不符合所述目标事务的并发一致性级别,回滚所述目标事务。
4.根据权利要求3所述的方法,其特征在于,所述活跃事务集合包括第一事务集合和第二事务集合,所述第一事务集合用于标识处于提交中状态或者验证通过状态的事务,所述第二事务集合用于标识处于运行中状态的事务;
所述基于活跃事务集合调整所述逻辑开始时刻包括:
将所述逻辑开始时刻更新至大于所述第一事务集合中的最大逻辑提交时刻;
响应于更新后的逻辑开始时刻小于或等于所述逻辑提交时刻,将所述第二事务集合中的事务的逻辑提交时刻调整至小于所述更新后的逻辑开始时刻;
响应于所述更新后的逻辑开始时刻大于所述逻辑提交时刻,回滚所述目标事务。
5.根据权利要求4所述的方法,其特征在于,所述将所述第二事务集合中的事务的逻辑提交时刻调整至小于所述更新后的逻辑开始时刻之后,所述方法还包括:
响应于所述第二事务集合中任一事务的逻辑开始时刻大于调整后的所述逻辑提交时刻,回滚所述任一事务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110115847.4/1.html,转载请声明来源钻瓜专利网。