[发明专利]基于消息的大型事务应用装置和方法有效
申请号: | 201110284525.9 | 申请日: | 2011-09-22 |
公开(公告)号: | CN102508834A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 栗竹冉 | 申请(专利权)人: | 用友软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 大型 事务 应用 装置 方法 | ||
技术领域
本发明涉及数据同步技术领域,具体而言,涉及基于消息的大型事务应用装置和方法。
背景技术
在图1所示的数据同步示意图中,首先,增量数据提取模块(SEM)102从OLTP数据源中把增量操作提取出来,同时对这些数据要做基本的分析并按事务分类,然后打包并传输给数据转换模块(SPM)104,数据转换模块(SPM)104收到打包好的事务后按照要求对事务的SQL操作进行转换处理,处理完成后通知数据应用模块(SAM)106来应用事务。为了保证整个数据增量同步的绝对可靠,在分布式环境下层会部署一个传输平台(例如消息中间件等),通过它来保证同步的可靠性。这在一般情况下是没有问题的,但在遇到打包成的事务是个大型事务时(例如一个批量更新操作有一亿条记录),在这种情况下,会出现以下的问题:
一次生成包含如此多的SQL操作的大型事务,系统很有可能因内存不足而直接崩溃;
就算内存可以处理包含这样大型事务的消息,但按目前的实现机制都是在收到整个事务后,SPM和SAM才会开始后续的处理,这样整个数据同步流程相当于变成了串行处理,对数据同步性能也会有很大的影响。
因此,需要一种可以针对大型事务的同步数据处理技术,使得在处理大型事务时可以提高数据同步性能。
发明内容
有鉴于此,本发明所要解决的技术问题在于,提供一种基于消息的大型事务应用技术,利用消息中间件这个平台来处理大型事务的远程传输,以提高数据同步性能。
根据本发明的一个方面,提供了一种基于消息的大型事务应用装置,用于将应用于第一数据源的增量数据操作语句同步应用于第二数据源,包括:分解单元,在从所述第一数据源中获取增量数据操作语句,将所述增量数据操作语句按事务进行打包,判断出所述事务为大型事务时,将所述大型事务分解为多份,将每份包含的所述增量数据操作语句构造成一个消息,将所述消息发送至应用单元;所述应用单元,在接收到所述消息时,创建所述第二数据源的本地事务以及创建相应的应用任务,所述应用任务基于所述本地事务将所述消息中包含的增量数据操作语句应用于所述第二数据源。
在上述技术方案中,优选地,所述分解单元还可以包括:消息构造模块,将多份分解后的所述大型事务构成多个所述消息,多个所述消息构成一个消息组;设置模块,设置每个所述消息的属性,所述属性包括所属消息组的身份识别信息、所属消息组内的消息个数、所述消息的序号,所述消息组的身份识别信息包括所述第一数据源的名称和所述第二数据源的本地事务标识。
在上述技术方案中,优选地,所述应用单元还可以包括:第二判断模块,在当前的所述消息中包含的增量数据操作语句应用完成时,判断所述消息是否属于消息组,若判断出属于消息组,则根据当前的所述消息的属性继续判断所述消息组中的消息是否全部处理完成,当判断结果为全部处理完成时,提交所述第二数据源的本地事务,当判断结果为没有全部处理完成时,继续处理剩余未处理的消息。
在上述技术方案中,优选地,所述分解单元还可以包括:第一判断模块,在所述事务中的增量数据操作语句的个数超过预设的所述消息所能包含的增量数据操作语句的阈值时,判断出所述事务为大型事务。
在上述技术方案中,优选地,所述应用单元基于XA接口规范创建所述第二数据源的本地事务,所述第一数据源为OLTP数据源,所述第二数据源为OLAP数据源。
上述技术方案通过对从OLTP数据源挖掘到的超大型事务进行拆分,可以明显改善增量数据应用的情况:通过拆分可以控制消息的大小,避免系统可能出现的不能发送数据甚至因内存不足而崩溃的情况;通过系统参数(消息所能包含的最大操作数)的设定,可以智能地适应硬件环境;通过拆分超大事务把原来的串行应用改为并行应用,明显提高系统的性能。
根据本发明的又一方面,还提供了一种基于消息的大型事务应用方法,用于将应用于第一数据源的增量数据操作语句同步应用于第二数据源,包括:步骤402,从所述第一数据源中获取增量数据操作语句,将所述增量数据操作语句按事务进行打包,当判断出所述事务为大型事务时,将所述大型事务分解为多份,将每份包含的所述增量数据操作语句构造成一个消息;步骤404,当接收到所述消息时,创建所述第二数据源的本地事务以及创建相应的应用任务,所述应用任务基于所述本地事务将所述消息中包含的增量数据操作语句应用于所述第二数据源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110284525.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种促进芹菜种子发芽的方法
- 下一篇:四阶混沌电力系统的无源控制方法