当前位置: 首页 > 专利查询>山东大学专利>正文

基于事务顺序分析的数据库事务并发重做方法和装置制造方法及图纸

技术编号:23932706 阅读:56 留言:0更新日期:2020-04-25 02:02
本公开提供了一种基于事务顺序分析的数据库事务并发重做方法及系统,获取事务信息,并根据事务编号进行分组,进行格式的转化;进行事务信息预处理,按照提交顺序加载相应的事务信息,将转换格式后的事务信息反序列化为事务对象,提取事务对象中的关键信息;确定当前事务是否有前驱事务,如果有则判断前驱事务是否完成,如果有前驱事务没有完成,则继续等待,如果没有,则重做该事务,并记录重做结果。本公开能够并发得进行数据重做,能够在保证执行数据正确性的前提下,提高事务重做的速度,有效解决数据库数据同步和数据恢复过程中的事务重做速度瓶颈。

The method and device of database transaction concurrent redo based on transaction sequence analysis

【技术实现步骤摘要】
基于事务顺序分析的数据库事务并发重做方法和装置
本公开属于数据库信息处理
,涉及一种基于事务顺序分析的数据库事务并发重做方法和装置。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。数据库事务重做是一种广泛用于数据库数据恢复和数据库数据同步的通用方法,它具体指将已经执行的事务在源数据库或目标数据库重新执行。目前基于重做日志的数据恢复和基于二进制日志捕获的数据同步,通常采用的都是按日志记录顺序地进行数据库事务重做。据专利技术人了解,按照日志记录顺序进行数据库事务重做容易出现以下问题:按日志记录顺序地进行数据库事务重做,无论事务间是否存在并发冲突,事务只能依次提交。源数据库上可以并发执行的事务在重做时只能依次执行,限制了数据库性能的发挥,造成事务重做的速度瓶颈,严重影响数据恢复和数据同步的性能。
技术实现思路
本公开为了解决上述问题,提出了一种基于事务顺序分析的数据库事务并发重做方法和装置,本公开能够并发得进行数据重做,能够在保证执行数据正确性的前提下,提高事务重做本文档来自技高网...

【技术保护点】
1.一种基于事务顺序分析的数据库事务并发重做方法,其特征是:包括以下步骤:/n获取事务信息,并根据事务编号进行分组,进行格式的转化;/n进行事务信息预处理,按照提交顺序加载相应的事务信息,将转换格式后的事务信息反序列化为事务对象,提取事务对象中的关键信息;/n确定当前事务是否有前驱事务,如果有则判断前驱事务是否完成,如果有前驱事务没有完成,则继续等待,如果没有,则重做该事务,并记录重做结果。/n

【技术特征摘要】
1.一种基于事务顺序分析的数据库事务并发重做方法,其特征是:包括以下步骤:
获取事务信息,并根据事务编号进行分组,进行格式的转化;
进行事务信息预处理,按照提交顺序加载相应的事务信息,将转换格式后的事务信息反序列化为事务对象,提取事务对象中的关键信息;
确定当前事务是否有前驱事务,如果有则判断前驱事务是否完成,如果有前驱事务没有完成,则继续等待,如果没有,则重做该事务,并记录重做结果。


2.如权利要求1所述的一种基于事务顺序分析的数据库事务并发重做方法,其特征是:事务信息收集的具体过程包括:
从数据库日志或数据库事务信息捕捉工具中批量获取事务信息;
根据事务编号分组事务信息,分组后一组事务信息对应一个事务;
结合数据库元数据整理事务包含的所有数据变更;
将事务信息序列化为JSON格式。


3.如权利要求1所述的一种基于事务顺序分析的数据库事务并发重做方法,其特征是:事务信息预处理步骤包括:
按事务提交顺序加载事务信息;
将JSON格式的事务信息反序列化为事务对象;
分析事务对象中包含的数据行变更记录,提取主键信息,确定事务涉及的主键值集合。


4.如权利要求1所述的一种基于事务顺序分析的数据库事务并发重做方法,其特征是:事务前驱分析的具体步骤包括:
遍历已完成预处理的事务对象,选择一个事务A与提交时间早于它的事务B,将它们的主键值集合做交运算;
如果有交集,说明两个事务先后操作了数据库中的同一行数据,两个事务不能并发,判定事务B是事务A的前驱事务;
如果没有交集,说明两个事务修改的是不同数据,两个事务可以并发,判定事务B不是事务A的前驱事务;
依次将事务A与更早提交的事务进行前驱判断,直到找到一个A的前驱或确定A完全没有前驱。


5.如...

【专利技术属性】
技术研发人员:闫中敏孟子成崔立真郭伟李晖
申请(专利权)人:山东大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1