[发明专利]事务提交的方法和装置有效
| 申请号: | 201911086637.6 | 申请日: | 2019-11-08 |
| 公开(公告)号: | CN110865874B | 公开(公告)日: | 2023-07-04 |
| 发明(设计)人: | 朱阅岸;林正显 | 申请(专利权)人: | 广州华多网络科技有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/21 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 邢少真 |
| 地址: | 511446 广东省广州市番*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 事务 提交 方法 装置 | ||
本申请公开了一种事务提交的方法,属于数据处理技术领域。该方法包括:接收第N+1阶段的对数据库进行操作的多个事务;对所述多个事务和第N阶段的挂起事务集中的事务进行冲突验证,得到第N+1阶段的执行事务集和第N+1阶段的挂起事务集,其中,所述执行事务集中的各事务之间不存在冲突;基于所述第N+1阶段的执行事务集中的各事务,对所述修改版本数据集中的数据进行操作;将操作完成的修改版本数据集中有修改的数据,拷贝到稳定版本数据集中;基于拷贝后的稳定版本数据集中的数据,进行写磁盘。采用本申请,可以有效解决相关技术中事务提交的延迟较大的技术问题。
技术领域
本申请涉及数据处理技术领域,具体涉及一种事务提交的方法和装置。
背景技术
数据库事务是访问并可能操作数据的一个数据操作序列,该数据操作序列中的操作要么全部执行,要么全部不执行,是一个不可分割的工作单位(称为事务的原子性)。数据库事务可以简称为事务,事务由事务开始与事务结束之间的全部数据操作组成。
相关技术中,为了保证事务的原子性,事务在提交时,需要先写日志至一个集中缓冲区,然后才可以写磁盘。写磁盘成功则说明事务提交成功,写磁盘失败则说明事务提交失败。当事务提交失败时,可能事务中的某些数据操作已经执行成功,而某些数据操作执行失败,此时可以通过之前写的日志,将数据回滚到一致性状态,从而,可以重新提交该事务,保证了事务的原子性。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
相关技术的日志均写至一个集中缓冲区,在这一过程中,为了避免不同的事务的日志互相影响,需要进行加锁,即某一事务将缓冲区加锁之后,只有该事务的日志可以写入,其余事务的日志暂时不能写入,这给事务提交造成较大的延迟。
发明内容
本申请实施例提供了一种事务提交的方法和装置,可以解决相关技术中存在的技术问题。所述事务提交的方法和装置的技术方案如下:
第一方面,提供了一种事务提交的方法,所述方法包括:
接收第N+1阶段的对数据库进行操作的多个事务,其中,所述数据库包括修改版本数据集和稳定版本数据集,所述N为大于或等于1的整数;
对所述多个事务和第N阶段的挂起事务集中的事务进行冲突验证,得到第N+1阶段的执行事务集和第N+1阶段的挂起事务集,其中,所述执行事务集中的各事务之间不存在冲突;
基于所述第N+1阶段的执行事务集中的各事务,对所述修改版本数据集中的数据进行操作;
将操作完成的修改版本数据集中有修改的数据,拷贝到稳定版本数据集中;
基于拷贝后的稳定版本数据集中的数据,进行写磁盘。
在一种可能的实现方式中,所述对所述多个事务和第N阶段的挂起事务集中的事务进行冲突验证,得到第N+1阶段的执行事务集和第N+1阶段的挂起事务集,包括:
将所述第N阶段的挂起事务集中接收时间最早的事务,确定为第N+1阶段的执行事务集中的第一个事务;
将所述多个事务和所述第N阶段的挂起事务集中除接收时间最早的事务之外的事务,按照事务接收的顺序,依次与所述第N+1阶段的执行事务集中的事务进行冲突验证,对于每个事务,如果所述事务与所述第N+1阶段的执行事务集中的事务不存在冲突,则将所述事务添加到所述第N+1阶段的执行事务集中;
将未添加到所述第N+1阶段的执行事务集中的事务,添加到第N+1阶段的挂起事务集。
在一种可能的实现方式中,所述接收第N+1阶段的对数据库进行操作的多个事务之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州华多网络科技有限公司,未经广州华多网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911086637.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种缓冲联轴器
- 下一篇:数据监控方法、装置、可读存储介质和电子设备





