一种数据库事务处理的系统和方法技术方案

技术编号:14233525 阅读:112 留言:0更新日期:2016-12-20 23:58
本发明专利技术实施例公开了一种数据库事务处理的系统和方法,该系统可以包括:主事务处理器、第一子事务协调器和第二子事务协调器,通过主事务处理器分别调用两种数据库类型对应的子事务协调器进行数据操作,从而能够针对多种数据库类型的数据库结合时的事务进行处理,提高了在多种类型数据库混用的情况下事务处理的完整性,保证数据的一致性。

System and method for database transaction processing

The embodiment of the invention discloses a system and a method for database transaction processing, the system can include: the main transaction processor, the first sub transaction coordinator and second sub transaction coordinator, through the main transaction processor sub transaction coordinator corresponding respectively called two database types of data operations, which can target multiple database types when combined with the database transactions, improve the integrity of the transaction database in many types of mixed environment, ensure the consistency of the data.

【技术实现步骤摘要】

本专利技术涉及数据库领域,尤其涉及一种数据库事务处理的系统和方法
技术介绍
随着云计算技术的逐步发展,分布式数据库作为云计算技术中的一个技术分支,正逐步在企业内部被采用。分布式数据库技术在企业中的应用对象是存储企业内部数据一致性要求较低,数据量较大的结构化数据,但在实际的很多情况下,需要同时处理的业务数据即有符合分布式数据库技术特征的数据,也有符合关系型数据库技术特征的数据,需要对这两者同时进行处理,在这个处理过程中,需要一种机制保证数据操作的一致性。在现有的解决方案中,对关系型数据库的数据操作一致性通常使用关系型数据库事务进行保障,对分布式数据库的数据操作一致性通过分布式事务进行保障,而在处理的业务数据既有符合分布式数据库技术特征的数据,又有符合关系型数据库技术特征的数据时,无法同时保障符合多种类型数据库混合存储的业务数据的操作一致性,因此,需要提供一种处理方法能够符合多种数据库类型的数据库结合时业务数据的操作一致性。
技术实现思路
为解决上述技术问题,本专利技术实施例期望提供一种数据库事务处理的系统和方法,能够针对多种数据库类型的数据库结合时的事务进行处理,提高了在多种类型数据库混用的情况下事务处理的完整性,保证数据的一致性。本专利技术的技术方案是这样实现的:第一方面,本专利技术实施例提供了一种数据库事务处理的系统,所述系统包括:主事务处理器、第一子事务协调器和第二子事务协调器,其中,所述主事务处理器,用于接收数据处理请求;以及,根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协调器分别对应的事务;其中,所述第一子事务协调器与所述第二子事务协调器所对应的事务对应于不同类型的数据库数据处理;以及,触发所述第一子事务协调器,并指示所述第一子事务协调器处理对应的事务;以及,触发所述第二子事务协调器,并指示所述第二子事务协调器处理对应的事务;以及,分别从所述第一子事务协调器和所述第二子事务协调器接收对应的第一事务处理结果和第二事务处理结果;并将所述第一事务处理结果和所述第二事务处理结果进行返回响应;所述第一子事务协调器,用于将自身对应的事务提交至关系型数据库;以及,接收所述关系型数据库在完成所述第一子事务协调器对应的事务后返回的第一事务处理结果;以及,将所述第一事务处理结果返回至所述主事务处理器;所述第二子事务协调器,用于将自身对应的事务提交至非关系型数据库;以及,接收所述非关系型数据库在完成所述第二子事务协调器对应的事务后返回的第二事务处理结果;以及,将所述第二事务处理结果返回至所述主事务处理器。进一步地,所述数据处理请求包括待处理的数据内容和处理操作事务;相应地,所述主事务处理器,具体用于:根据所述待处理的数据内容确定所述第一子事务协调器对应的第一数据内容和所述第二子事务协调器对应的第二数据内容;以及,将所述处理操作事务区分为分别与所述关系型数据库和所述非关系型数据库对应的第一特定操作事务和第二特定操作事务,其中,所述第一特定操作事务用于通过所述第一子事务协调器提交至所述关系型数据库对所述第一数据内容进行操作,所述第二特定操作事务用于通过所述第二子事务协调器提交至所
述非关系型数据库对所述第二数据内容进行操作。进一步地,所述非关系型数据库为分布式数据库,相应地,所述第二子事务协调器,用于将自身对应的事务提交至各个分布式数据库;以及,接收所述各个分布式数据库在完成所述第二子事务协调器对应的事务后分别返回的第二事务处理结果;以及,将各个分布式数据库返回的第二事务处理结果向所述主事务处理器返回。进一步地,所述主事务处理器,还用于:根据所述第一事务处理结果和所述第二事务处理结果以及预设的判定策略确定是否进行事务回滚;当确定进行事务回滚时,指示所述第一子事务协调器将所述关系型数据库的状态恢复至完成所述第一子事务协调器对应的事务之前的状态,以及,指示所述第二子事务协调器将所述非关系型数据库的状态恢复至完成所述第二子事务协调器对应的事务之前的状态;以及,当所述第一子事务协调器和所述第二子事务协调器均分别完成所述关系型数据库的状态恢复和所述非关系型数据库的状态恢复后,确定事务回滚完成。第二方面,本专利技术实施例提供了一种数据库事务处理的方法,所述方法应用于一数据库事务处理的系统,所述系统包括:主事务处理器、第一子事务协调器和第二子事务协调器,所述方法包括:所述主事务处理器接收数据处理请求;并根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协调器分别对应的事务;所述主事务处理器触发所述第一子事务协调器,并指示所述第一子事务协调器处理对应的事务;所述第一子事务协调器将自身对应的事务提交至关系型数据库;所述第一子事务协调器接收所述关系型数据库在完成所述第一子事务协调器对应的事务后返回的第一事务处理结果;所述第一子事务协调器将所述第一事务处理结果返回至所述主事务处理器;所述主事务处理器触发所述第二子事务协调器,并指示所述第二子事务协调器处理对应的事务;所述第二子事务协调器将自身对应的事务提交至非关系型数据库;所述第二子事务协调器接收所述非关系型数据库在完成所述第二子事务协调器对应的事务后返回的第二事务处理结果;所述第二子事务协调器将所述第二事务处理结果返回至所述主事务处理器;所述主事务处理器分别从所述第一子事务协调器和所述第二子事务协调器接收对应的第一事务处理结果和第二事务处理结果;并将所述第一事务处理结果和所述第二事务处理结果进行返回响应。进一步地,所述数据处理请求包括待处理的数据内容和处理操作事务;相应地,所述主事务处理器根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协调器分别对应的事务,包括:所述主事务处理器根据所述待处理的数据内容确定所述第一子事务协调器对应的第一数据内容和所述第二子事务协调器对应的第二数据内容;所述主事务处理器将所述处理操作事务区分为分别与所述关系型数据库和所述非关系型数据库对应的第一特定操作事务和第二特定操作事务,其中,所述第一特定操作事务用于通过所述第一子事务协调器提交至所述关系型数据库对所述第一数据内容进行操作,所述第二特定操作事务用于通过所述第二子事务协调器提交至所述非关系型数据库对所述第二数据内容进行操作。进一步地,所述非关系型数据库为分布式数据库,相应地,所述第二子事务协调器将自身对应的事务提交至非关系型数据库;所述第二子事务协调器接收所述非关系型数据库在完成所述第二子事务协调器对应的事务后返回的第二事务处理结果;所述第二子事务协调器将所述第二事务处理结果返回至所述主事务处理器,具体包括:所述第二子事务协调器将自身对应的事务提交至各个分布式数据库;所述第二子事务协调器接收所述各个分布式数据库在完成所述第二子事务
协调器对应的事务后分别返回的第二事务处理结果;所述第二子事务协调器将各个分布式数据库返回的第二事务处理结果向所述主事务处理器返回。进一步地,所述方法还包括:所述主事务处理器根据所述第一事务处理结果和所述第二事务处理结果以及预设的判定策略确定是否进行事务回滚;当确定进行事务回滚时,所述主事务处理器指示所述第一子事务协调器将所述关系型数据库的状态恢复至完成所述第一子事务协调器对应的事务之前的状态,并且指示所述第二子事务协调器将所述非本文档来自技高网
...
一种数据库事务处理的系统和方法

【技术保护点】
一种数据库事务处理的系统,其特征在于,所述系统包括:主事务处理器、第一子事务协调器和第二子事务协调器,其中,所述主事务处理器,用于接收数据处理请求;以及,根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协调器分别对应的事务;其中,所述第一子事务协调器与所述第二子事务协调器所对应的事务对应于不同类型的数据库数据处理;以及,触发所述第一子事务协调器,并指示所述第一子事务协调器处理对应的事务;以及,触发所述第二子事务协调器,并指示所述第二子事务协调器处理对应的事务;以及,分别从所述第一子事务协调器和所述第二子事务协调器接收对应的第一事务处理结果和第二事务处理结果;并将所述第一事务处理结果和所述第二事务处理结果进行返回响应;所述第一子事务协调器,用于将自身对应的事务提交至关系型数据库;以及,接收所述关系型数据库在完成所述第一子事务协调器对应的事务后返回的第一事务处理结果;以及,将所述第一事务处理结果返回至所述主事务处理器;所述第二子事务协调器,用于将自身对应的事务提交至非关系型数据库;以及,接收所述非关系型数据库在完成所述第二子事务协调器对应的事务后返回的第二事务处理结果;以及,将所述第二事务处理结果返回至所述主事务处理器。...

【技术特征摘要】
1.一种数据库事务处理的系统,其特征在于,所述系统包括:主事务处理器、第一子事务协调器和第二子事务协调器,其中,所述主事务处理器,用于接收数据处理请求;以及,根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协调器分别对应的事务;其中,所述第一子事务协调器与所述第二子事务协调器所对应的事务对应于不同类型的数据库数据处理;以及,触发所述第一子事务协调器,并指示所述第一子事务协调器处理对应的事务;以及,触发所述第二子事务协调器,并指示所述第二子事务协调器处理对应的事务;以及,分别从所述第一子事务协调器和所述第二子事务协调器接收对应的第一事务处理结果和第二事务处理结果;并将所述第一事务处理结果和所述第二事务处理结果进行返回响应;所述第一子事务协调器,用于将自身对应的事务提交至关系型数据库;以及,接收所述关系型数据库在完成所述第一子事务协调器对应的事务后返回的第一事务处理结果;以及,将所述第一事务处理结果返回至所述主事务处理器;所述第二子事务协调器,用于将自身对应的事务提交至非关系型数据库;以及,接收所述非关系型数据库在完成所述第二子事务协调器对应的事务后返回的第二事务处理结果;以及,将所述第二事务处理结果返回至所述主事务处理器。2.根据权利要求1所述的系统,其特征在于,所述数据处理请求包括待处理的数据内容和处理操作事务;相应地,所述主事务处理器,具体用于:根据所述待处理的数据内容确定所述第一子事务协调器对应的第一数据内容和所述第二子事务协调器对应的第二数据内容;以及,将所述处理操作事务区分为分别与所述关系型数据库和所述非关系型数据库对应的第一特定操作事务和第二特定操作事务,其中,所述第一特定操作事务用于通过所述第一子事务协调器提交至所述关系型数据库对所述第一数据内容进行操作,所述第二特定操作事务用于通过所述第二子事务协调器提交至所述非关系型数据库对所述第二数据内容进行操作。3.根据权利要求1所述的系统,其特征在于,所述非关系型数据库为分布式数据库,相应地,所述第二子事务协调器,用于将自身对应的事务提交至各个分布式数据库;以及,接收所述各个分布式数据库在完成所述第二子事务协调器对应的事务后分别返回的第二事务处理结果;以及,将各个分布式数据库返回的第二事务处理结果向所述主事务处理器返回。4.根据权利要求1所述的系统,其特征在于,所述主事务处理器,还用于:根据所述第一事务处理结果和所述第二事务处理结果以及预设的判定策略确定是否进行事务回滚;当确定进行事务回滚时,指示所述第一子事务协调器将所述关系型数据库的状态恢复至完成所述第一子事务协调器对应的事务之前的状态,以及,指示所述第二子事务协调器将所述非关系型数据库的状态恢复至完成所述第二子事务协调器对应的事务之前的状态;以及,当所述第一子事务协调器和所述第二子事务协调器均分别完成所述关系型数据库的状态恢复和所述非关系型数据库的状态恢复后,确定事务回滚完成。5.一种数据库事务处理的方法,其特征在于,所述方法应用于一数据库事务处理的系统,所述系统包括:主事务处理器、第一子事务协调器和第二子事务协调器,所述方法包括:所述主事务处理器接收数据处理请求;并根据所述数据处理请求确定所述第一子事务协调器与所述第二子事务协...

【专利技术属性】
技术研发人员:李国源许徽
申请(专利权)人:中国移动通信集团山西有限公司
类型:发明
国别省市:山西;14

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

1