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

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

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

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

【技术实现步骤摘要】
基于事务顺序分析的数据库事务并发重做方法和装置
本公开属于数据库信息处理
,涉及一种基于事务顺序分析的数据库事务并发重做方法和装置。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。数据库事务重做是一种广泛用于数据库数据恢复和数据库数据同步的通用方法,它具体指将已经执行的事务在源数据库或目标数据库重新执行。目前基于重做日志的数据恢复和基于二进制日志捕获的数据同步,通常采用的都是按日志记录顺序地进行数据库事务重做。据专利技术人了解,按照日志记录顺序进行数据库事务重做容易出现以下问题:按日志记录顺序地进行数据库事务重做,无论事务间是否存在并发冲突,事务只能依次提交。源数据库上可以并发执行的事务在重做时只能依次执行,限制了数据库性能的发挥,造成事务重做的速度瓶颈,严重影响数据恢复和数据同步的性能。
技术实现思路
本公开为了解决上述问题,提出了一种基于事务顺序分析的数据库事务并发重做方法和装置,本公开能够并发得进行数据重做,能够在保证执行数据正确性的前提下,提高事务重做的速度,有效解决数据库数据同步和数据恢复过程中的事务重做速度瓶颈。根据一些实施例,本公开采用如下技术方案:一种基于事务顺序分析的数据库事务并发重做方法,包括以下步骤:获取事务信息,并根据事务编号进行分组,进行格式的转化;进行事务信息预处理,按照提交顺序加载相应的事务信息,将转换格式后的事务信息反序列化为事务对象,提取事务对象中的关键信息;确定当前事务是否有前驱事务,如果有则判断前驱事务是否完成,如果有前驱事务没有完成,则继续等待,如果没有,则重做该事务,并记录重做结果。作为进一步的限定,事务信息收集的具体过程包括:从数据库日志或数据库事务信息捕捉工具中批量获取事务信息;根据事务编号分组事务信息,分组后一组事务信息对应一个事务;结合数据库元数据整理事务包含的所有数据变更;将事务信息序列化为JSON格式。作为进一步的限定,事务信息预处理步骤包括:按事务提交顺序加载事务信息;将JSON格式的事务信息反序列化为事务对象;分析事务对象中包含的数据行变更记录,提取主键信息,确定事务涉及的主键值集合。作为进一步的限定,事务前驱分析的具体步骤包括:遍历已完成预处理的事务对象,选择一个事务A与提交时间早于它的事务B,将它们的主键值集合做交运算;如果有交集,说明两个事务先后操作了数据库中的同一行数据,两个事务不能并发,判定事务B是事务A的前驱事务;如果没有交集,说明两个事务修改的是不同数据,两个事务可以并发,判定事务B不是事务A的前驱事务;依次将事务A与更早提交的事务进行前驱判断,直到找到一个A的前驱或确定A完全没有前驱。作为进一步的限定,事务重做的具体步骤:选择一个事务,检查其有无前驱事务;如果有前驱事物则检查事务重做结果记录表,判断前驱事务是否重做完成;如果前驱事务尚未重做完成,则继续等待;如果没有前驱事务或者前驱事务重做完成,则在目标数据库上重做该事务;将重做结果记录到事务重做结果记录表中。一种基于事务顺序分析的数据库事务并发重做系统,包括:事务信息收集模块,被配置为获取事务信息,并根据事务编号进行分组,进行格式的转化;事务预处理模块,被配置为进行事务信息预处理,按照提交顺序加载相应的事务信息,将转换格式后的事务信息反序列化为事务对象,提取事务对象中的关键信息;事务前驱分析模块,被配置为确定当前事务是否有前驱事务;事务重做模块,被配置为如果有则判断前驱事务是否完成,如果有前驱事务没有完成,则继续等待,如果没有,则重做该事务,并记录重做结果。一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的一种基于事务顺序分析的数据库事务并发重做方法。一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的一种基于事务顺序分析的数据库事务并发重做方法。与现有技术相比,本公开的有益效果为:本公开基于事务顺序分析的数据库事务并发重做方法和装置能够以正确的并发执行顺序重做事务,在保证数据正确的同时提高数据库事务重做的速度。本公开能够根据事务的顺序执行记录分析出事务并发执行的正确顺序,能够实时分析事务的执行情况,确定哪些事务可以开始并行执行,哪些事务继续处于等待状态。本公开可应用于数据同步和数据恢复领域,能有效解决事务重做速度瓶颈的问题,提高数据同步软件和数据恢复软件的可用性。附图说明构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。图1是本实施例的装置结构图;图2是本实施例的事务信息收集流程图;图3是本实施例的事务信息预处理流程图;图4是本实施例的事务前驱分析流程图;图5是本实施例的事务重做流程图。具体实施方式:下面结合附图与实施例对本公开作进一步说明。应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。如图1所示,基于事务顺序分析的数据库事务并发重做装置,包含以下模块:事务信息加载模块11,事务结构化分析模块12,事务前驱分析模块13,事务重做调度模块14,事务重做模块15。事务信息收集模块11,以数据库日志111或数据库事务信息捕捉工具112作为数据来源,收集事务信息,事务信息包含事务编号、事务提交时间、事务类型等。结合数据库元数据整理事务包含的全部数据变更内容。最终将事务信息序列化为按事务编号分组的JSON数组。事务信息预处理模块12,从事务信息收集模块中按事务提交顺序加载事务信息,将JSON格式的事务信息反序列化为事务对象。分析事务对象中包含的数据行变更记录,提取主键信息,确定事务涉及的主键值集合。事务顺序分析模块13,选择预处理完成的事务对象,比较它与更早提交的事务的主键值集合。主键值集合有交集意味着两个事务操作了相同数据行,因此两个事务不能并发,对于不能并发的两个事务,以先提交的事务作为后提交事务的前驱事务。判明事务间的前驱关系,可以得到事务在并发执行时必须保证的先后顺序。事务重做模块14,不断分析尚未重做的事本文档来自技高网
...

【技术保护点】
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