[发明专利]一种两段式提交的事务控制方法有效
| 申请号: | 201610111867.3 | 申请日: | 2016-02-29 |
| 公开(公告)号: | CN105786595B | 公开(公告)日: | 2019-04-23 |
| 发明(设计)人: | 孙立新;周仑;宫保金 | 申请(专利权)人: | 浪潮通用软件有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 罗文曌 |
| 地址: | 250100 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 段式 提交 事务 控制 方法 | ||
1.一种两段式提交的事务控制方法,其特征在于:包括以下阶段:
(一)启动逻辑事务:
1.1、在事务管理列表中登记该逻辑事务;
1.2、建立逻辑事务数据缓冲区;
1.3、将逻辑事务状态标记为启动,返回事务标识;
(二)将变更数据提交到逻辑事务数据缓冲区;
具体包括以下步骤:
2.1、将变更数据基于事务标识依次序写入到数据缓冲区:变更数据的写入按照数据缓冲区的键值对变更数据结构的要求进行,其可以分多次写入;
2.2、对写入的不同的变更数据添加数据锁,进行数据隔离:基于数据缓冲区的键值及变更数据的变更类型,向锁管理列表中添加相应的数据锁,所述锁管理列表是一个可检索的列表数据结构,锁管理列表中的一项即为一个数据锁描述,数据锁描述包含锁标识、数据键标识、锁类型及创建时间;
(三)提交逻辑事务;
具体包括以下步骤:
3.1、构造数据库操作语句:根据逻辑事务的数据缓冲区的变更数据构造数据库操作语句,构造方式可基于ORM框架或提供扩展机制,由扩展程序实现;
3.2、启动数据库事务,并将逻辑事务状态置为提交中;
3.3、批量执行数据库操作语句:批量执行应按照变更数据的时间顺序进行;
3.4、提交数据库事务;
3.5、从事务管理列表中清理该逻辑事务:清理事务包括:删除该事务的所有数据锁、删除该事务对应的数据缓冲区、从事务管理列表中将该事务置为已完成。
2.根据权利要求1所述的两段式提交的事务控制方法,其特征在于:步骤1.1所述事务管理列表是一个逻辑事务的记录列表,列表中每一行包含但不限于以下属性:事务标识、事务状态、事务创建时间、事务启动时间、事务完成时间和事务描述;所述事务状态为枚举类型属性,包含已创建、已启动、提交中、已完成、取消中和已取消六个枚举值。
3.根据权利要求2所述的两段式提交的事务控制方法,其特征在于:在向事务管理列表中登记时,自动生成一个事务的唯一标识,且设置事务状态为已创建。
4.根据权利要求1、2或3所述的两段式提交的事务控制方法,其特征在于:步骤1.2所述的逻辑事务数据缓冲区为一个基于键值对的索引结构,键为数据缓冲区中的数据标识,值为一个变更数据结构,所述变更数据结构包含变更类型、变更时间和变更内容,其中变更类型是一个枚举类型属性,包含插入、更新和删除三个枚举值,变更内容为一个内存对象。
5.根据权利要求4所述的两段式提交的事务控制方法,其特征在于:每一个逻辑事务对应一个数据缓冲区。
6.根据权利要求5所述的两段式提交的事务控制方法,其特征在于:向锁管理列表中添加数据锁前,先对锁管理列表进行检索是否已存在重复的数据键标识;锁提交列队提供轮询机制,检查数据锁请求是否可执行;锁提交列队提供轮询超时机制,判断锁请求是否超时。
7.根据权利要求6所述的两段式提交的事务控制方法,其特征在于:若逻辑事务执行过程中发生异常,则回滚该逻辑事务,包括以下步骤:
3.6、回滚数据库事务;
3.7、从事务列表中清理该事务:清理事务包括:将逻辑事务状态置为取消中、删除该事务的所有数据锁、删除该事务对应的数据缓冲区、从事务列表中将该事务置为已取消。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮通用软件有限公司,未经浪潮通用软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610111867.3/1.html,转载请声明来源钻瓜专利网。





