数据处理方法及数据处理装置的制造方法

文档序号:9672973阅读:343来源:国知局
数据处理方法及数据处理装置的制造方法
【技术领域】
[0001]本申请涉及通讯领域,尤其涉及一种数据处理方法及数据处理装置。
【背景技术】
[0002]分布式数据处理也可以称为分布式计算、分布式处理或分布式事务处理。分布式数据处理是指在计算或处理时,发起者将需要计算的数据或需要处理的事务分成多个子计算、子处理或子事务,然后把这些子计算、子处理或子事务分配给多个参与者进行计算或处理,最后发起者把各参与者的处理结果综合起来得到最终的结果。
[0003]现有技术中,发起者将分布式事务划分为多个子事务,并分配给多个参与者,分别查询各参与者是否能处理被分配的子事务。参与者根据自身资源使用的情况回应发起者。若该参与者能够处理被分配的子事务,则给该子事务分配资源,包括分配处理的空间、处理的时间等,且回复发起者“已就绪”;若该参与者无法处理被分配的子事务,则回复发起者“未就绪”。
[0004]发起者在确认所有参与者都可以处理被分配的子事务后,命令所有参与者处理被分配的子事务;参与者处理各自被分配的子事务,并在处理结束后将处理结果发送给发起者。
[0005]若有任意一个参与者无法处理被分配的子事务,发起者结束该分布式事务处理,并命令所有参与者回滚,即命令所有参与者释放给该分布式事务的子事务分配的资源。
[0006]若发起者查询某个分布式事务参与者是否能处理被分配的子事务后,发起者和该参与者之间的通讯中断,该参与者根据发起者的查询给子事务分配资源,并回复发起者“已就绪”。由于通讯中断,发起者在预定时间内未收到该参与者“已就绪”的回应,认为该参与者无法处理被分配的子事务,则结束该分布式事务处理,命令所有参与者回滚。由于该参与者与发起者之间的通讯中断,该参与者并没有收到回滚的命令,保留对该子事务预留的资源,即该参与者进行了一次空的回滚,该参与者被分配的子事务称为悬挂的子事务。
[0007]另一种产生悬挂子事务的情况是,该参与者根据发起者的询问给子事务分配资源的耗时较长,发起者在预定时间内未收到该参与者“已就绪”的回应,认为该参与者无法处理被分配的子事务,则命令所有参与者回滚。由于该参与者仍然在给被分配的子事务分配资源,即使接收到回滚的命令,也无法释放对该子事务预留的资源,即该参与者进行了一次空的回滚,该参与者被分配的子事务同样称为悬挂的子事务。
[0008]上述两种情况下,发起者发出了回滚的命令,默认所有参与者都进行了回滚,可以继续分配子事务,发起者无法得知该参与者进行的是一次空的回滚。随后,发起者发起同样的分布式事务的处理,给上述具有悬挂子事务的参与者分配子事务,该参与者也仍然会给同样的子事务分配资源,并回复发起者“已就绪”。如此,上述参与者对同样的子事务分配了两次资源。在处理阶段,该参与者可能会对同样的子事务进行两次处理,并提交进行两次处理后的结果;或者该参与者可能会将在先的上述悬挂的子事务的处理结果提交给发起者。
[0009]可见,现有技术中,在处理分布式事务时,如果出现悬挂的子事务,则可能会发生子事务的误提交,降低了分布式事务处理的可靠性。

【发明内容】

[0010]本申请实施例提供了一种数据处理方法,能避免分布式事务的子事务的误提交。
[0011]第一方面,本申请实施例公开了一种数据处理方法,包括:
[0012]给各参与者分配子事务,生成子事务对应的唯一的子事务号,生成所述子事务与子事务号的对应关系;
[0013]发送查询命令至所述各参与者,以获取所述各参与者已就绪的回复;
[0014]若接收到所有参与者已就绪的回复,则发送提交命令及要提交的子事务的子事务号至所述各参与者,使所述各参与者根据所述提交命令及要提交的子事务的子事务号提交处理结果;
[0015]接收所述各参与者提交的处理结果。
[0016]可选的,所述使参与者根据提交命令及要提交的子事务的子事务号提交理结果,包括:
[0017]使所述各参与者根据提交命令处理子事务,比较所述处理的子事务的子事务号与要提交的子事务的子事务号,若两者相同,提交处理结果。
[0018]可选的,所述生成子事务与子事务号的对应关系后,所述方法还包括:
[0019]发送所述子事务与子事务号的对应关系至所述各参与者。
[0020]另一方面,本申请还提供了一种数据处理方法,所述方法包括:
[0021]根据发起者发送的查询命令,给分配的子事务预留资源,发送已就绪回复至所述发起者;
[0022]接收所述发起者发送的提交命令以及要提交的子事务的子事务号;
[0023]根据所述提交命令和所述预留资源处理所述子事务;
[0024]获取所述处理的子事务的子事务号,与所述要提交的子事务的子事务号进行比较,若两者相同,则提交所述处理结果至所述发起者,若两者不同,则拒绝提交。
[0025]可选的,所述获取所述处理的子事务的子事务号,包括:根据所述发起者发送的子事务与子事务号的对应关系获取所述处理的子事务的子事务号。
[0026]可选的,所述方法还包括:
[0027]拒绝提交后,发出错误提交告警至所述发起者。
[0028]第三方面,本申请还提供了一种数据处理装置,所述装置包括:
[0029]生成单元,用于给各参与者分配子事务,生成子事务对应的唯一的子事务号,生成所述子事务与子事务号的对应关系;
[0030]查询单元,用于发送查询命令至所述各参与者,以获取所述各参与者已就绪的回复;
[0031]第一处理单元,用于若接收到所有参与者已就绪的回复,则发送提交命令及要提交的子事务的子事务号至所述各参与者,使所述各参与者根据所述提交命令及要提交的子事务的子事务号提交处理结果;
[0032]处理结果接收单元,用于接收所述各参与者提交的处理结果。
[0033]可选的,所述第一处理单元还用于:使所述各参与者根据提交命令处理子事务,比较所述处理的子事务的子事务号与要提交的子事务的子事务号,若两者相同,提交处理结果。
[0034]第四方面,本申请还提供了一种数据处理装置,包括:
[0035]资源预留单元,用于根据发起者发送的查询命令,给分配的子事务预留资源,发送已就绪回复至所述发起者;
[0036]命令接收单元,用于接收所述发起者发送的提交命令以及要提交的子事务的子事务号;
[0037]第二处理单元,用于根据所述提交命令和所述预留资源获取所述子事务的处理结果;
[0038]比较单元,用于获取所述处理的子事务的子事务号,与所述要提交的子事务的子事务号进行比较,若两者相同,则提交所述处理结果至所述发起者,若两者不同,则拒绝提交。
[0039]可选的,所述比较单元还用于:
[0040]根据所述发起者发送的子事务与子事务号的对应关系获取所述处理的子事务的子事务号。
[0041]本申请实施例提供的数据处理方法,在处理分布式事务时,通过生成子事务对应的唯一的子事务号,生成子事务与子事务号的对应关系,在发送提交命令时同时发送要提交的子事务的子事务号给参与者,使参与者在提交子事务的处理结果之前比较处理的子事务和要提交的子事务的子事务号,在两者一致时再进行提交,可避免提交遗留的悬挂子事务,避免了子事务的误提交,提高了分布式事务处理的可靠性。
【附图说明】
[0042]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1