一种用于处理多阶段分布式任务调度的系统及方法

文档序号:7780669阅读:332来源:国知局
一种用于处理多阶段分布式任务调度的系统及方法
【专利摘要】本发明涉及数据处理领域,具体是一种用于处理多阶段分布式任务调度的系统及方法,所述的系统由若干台负责具体业务处理的主机组成,每台主机负责一个或者多个产品集合处理,所有的主机之间通过存储区域网络共享访问磁盘,并通过共享磁盘来进行主机间数据同步,所有交易主机之间通过分布式锁进行消息同步,功能模块负责归属本机产品集合的请求处理,分布式子事务处理主要在每台主机的功能模块完成。本发明同现有技术相比,其优点在于:通过分布式提高多阶段分布式复杂事务的处理效率,降低此类事务处理失败时回滚的成本,特别适用于证券数据处理行业里具有多阶段性、无后效性、子阶段分布性的复杂事务高效可靠处理。
【专利说明】一种用于处理多阶段分布式任务调度的系统及方法
[【技术领域】]
[0001]本发明涉及数据处理领域,尤其涉及高可用集群计算机系统适用于多阶段分布式复杂事务处理要求的处理方法,具体是一种用于处理多阶段分布式任务调度的系统及方法。
[【背景技术】]
[0002]目前,在证券数据处理领域,面临一类被称为多阶段分布式复杂事务的复杂业务,例如ETF (Exchange Tradable Fund,交易所交易基金)申购赎回、一篮子股票同时交易等数据处理需求。该类业务往往具有如下的特点:在时间维度上,可划分为多个时序上相对独立的自然子阶段事务,当且仅当当前子阶段事务处理完毕方能引起下一个子阶段事务处理的开始,在空间维度上,每个子阶段事务内部又由多个可分布处理的子事务组成。事务是一个最小的工作单元,不论成功与否都作为一个整体进行工,由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整修事务失败,当事务失败时,系统返回到事务开始前的状态,这个取消所有变化的过程称为“回滚”。
[0003]针对这类复杂事务,现有的处理方法有两类,一类是整体统一事务处理模式,一类是分布式两阶段事务处理模式,如果整体统一事务处理的模式,可以将这类复杂事务整个作为一个原子事务来进行处理,整体处理一阶段提交,处理成功则整体提交,否则整体回滚。整体处理的方式保证了事务的完整性,但是一旦发生回滚的时候,整体处理的开销将会很大,而现有的分布式两阶段事务处理,将分布式事务分为两个阶段进行:第一阶段准备阶段和第二阶段的提交阶段,在准备阶段,各个子事务可以分布式进行处理,并且各个子事务都完成了几乎所有的正式提交工作,在提交阶段进行整个事务的提交或者回滚操作,分布式两阶段事务处理也保证了事务的完整性,但是这种机制也是要求所有子任务要么全做要么全不做,无法实现在子阶段层面的回滚重做,同时,两阶段事务处理方式也未体现出复杂事务的分阶段处理思想。
[
【发明内容】
]
[0004]本发明是根据现有事务处理机制的现状,特别针对复杂事务的子阶段分布式处理以及子阶段细粒度回滚重做的技术难点,实现将复杂业务的处理放置在时序上多个独立自然子阶段的维度,每个子阶段又分布式进行处理,降低回滚成本的目的,提供一种用于处理多阶段分布式任务调度的系统及方法。
[0005]为了实现上述目的,发明一种用于处理多阶段分布式任务调度的系统,所述的系统由若干台负责具体业务处理的主机组成,每台主机负责一个或者多个产品集合处理,所有的主机之间通过存储区域网络共享访问磁盘,并通过共享磁盘来进行主机间数据同步,所有交易主机之间通过分布式锁进行消息同步,每台主机均部署功能模块和架构模块,功能模块负责归属本机产品集合的请求处理,分布式子事务处理主要在每台主机的功能模块完成,架构模块负责各主机在主机集群中的通讯和协调,多阶段任务调度则主要通过架构模块实施,在主机集群工作时,主机内部会推举一台主机兼做集群主节点,其他节点则自然成为集群从节点,主节点除了要负责归属本机产品集合的处理任务以外,还需承担整个集群上异步作业的管理,包括创建集群上的异步作业、触发从节点的数据同步、汇总从节点的
处理结果。
[0006]所述的系统将需要处理的事务全集划分为多个独立性、完备性的事务处理空间,所述的独立性指不同事务的处理空间无交集,所述的完备性指其中一个产品的事务处理只需在该产品对应的事务处理空间中即可完成,将各个独立完备的事务处理空间划分到多个产品集合,并将不同产品集合分布到不同的业务主机上进行处理,整个多机集群系统为多个独立处理的节点构成,所有独立处理节点的交集为空,并集为全体事务。
[0007]所述的系统中所有从前台发来的事务通过通信层路由到主节点的架构模块,主节点架构模块将事务数据记入共享磁盘的工作页面日志文件,并通过同步锁触发从节点架构模块对于工作页面日志文件的重演,主从节点的架构模块会将归属自己的事务请求发送到本机的功能模块执行处理,功能模块处理后的响应信息则通过通信层汇总到主节点架构模块,主节点架构模块处理完整个事务后,会通过通信层将响应信息下发回前台请求。
[0008]所述的系统中所有的事务请求首先由主节点架构模块开始处理,主节点架构模块完成校验工作后,为事务请求创建一个异步作业,并将该异步事务作业发送到功能模块执行,此后主节点架构模块立即触发从节点架构模块对于工作页面日志文件的重演,从节点架构模块即根据日志文件中记录的数据在本地创建相同的事务异步作业和请求数据,并将作业请求也发送到本地的功能模块处理,各节点的功能模块通过异步请求的方式接收到事务请求,其根据事务当前处理阶段情况执行相关的操作,并将处理完成后所有的执行结果返回到主节点架构模块,以便继续的处理;主节点架构模块收到功能模块的执行结果后,检查当前的异步事务列表是否所有主机上的异步作业都已经完成,仅当事务请求的所有异步作业都已经完成后,执行处理阶段的切换,然后对当前处理阶段下的后续功能进行收尾处理,在完成了所有请求的处理,主节点架构模块通过阶段结束函数创建异步作业,此时如果事务已经处理到最后一阶段,阶段结束会直接返回,否则会创建新的异步作业并准备触发从节点的消息,开启下一阶段的处理流程;完成所有阶段的处理后,主节点架构模块提交当前请求的处理事务,并最终将请求的处理结果返回给前台应用,如果处理过程中发生技术性的错误,可以在子阶段子事务层面进行回滚重做,无需回滚整个事务。
[0009]所述的系统还包括集群中节点失效后备机接管处理系统,在集群中如果发生节点失效退出的情况,集群节点间的同步消息锁会在所有的节点上触发节点退出事件,集群上剩余节点都会响应该事件,如果是主节点失效,则新推举的主节点会根据失效主节点记录在共享磁盘上的工作页面日志文件进行重演,恢复到与失效主节点最后一个记录状态一致,然后继续接管任务处理;如果是从节点失效,则备机直接接管失效从节点的工作,由主节点重发未完成的事务给接管从节点处理,依此机制保证多阶段分布式复杂事务在主机失效的情况下仍可正确处理。
[0010]一种采用用于处理多阶段分布式任务调度系统的调度方法,调度方法将复杂业务的处理放置在时序上多个独立自然子阶段的维度,每个子阶段又分布式进行处理,事务的完整性由协调阶段协调整个集群参与者完成所有子阶段来进行保证,事务的回滚则有集群参与者控制在当前子阶段的范畴,降低回滚成本;
[0011]具体方法如下:
[0012]a.事务多阶段控制方法:在多机集群系统上,整个复杂事务被划分为时序上前后依赖的多个子阶段,分步骤进行事务处理,整个复杂事务的多阶段控制由多机集群系统的主节点承担,主节点在接收到多阶段分布式复杂事务请求后,发起第一阶段的子阶段事务处理并发布到整个集群上进行处理,主节点发起阶段处理后,会标识当前事务处理的阶段,并等待整个集群上的处理结果,当主节点汇总到集群上所有的处理完成信息后,再发起下一阶段的处理,当所有的阶段都处理完成后,主节点则完成整个复杂事务的处理,并进行提交或者回滚,将处理结果下发事务请求方;
[0013]b.子事务的中央分发与汇总机制的处理方法:多阶段分布式复杂事务请求进入该集群计算机系统后,由集群主节点的架构模块接受该请求,主节点的架构模块会对这类事务请求执行事务相关的校验工作,校验通过后则会向集群所有节点发出处理请求消息,协调整个交易主机集群开始进行事务处理,复杂事务的阶段划分以及各个阶段需要执行的工作被预先定义在各节点架构模块中,主节点架构模块会根据该定义,分阶段创建异步事务作业,同时往集群内所有节点架构模块发出处理请求,触发各个阶段事务处理的开始;
[0014]主节点在创建异步事务作业以后,一方面会将该异步事务作业发送到自己的功能模块执行,另一方面会触发从节点与主节点之间的数据同步,从节点架构模块会根据与主节点同步的数据信息,在本地创建相同的异步事务作业和请求数据,并将作业请求也发送到本地的功能模块处理,集群内部所有节点的功能模块在处理请求消息的时候,会根据当前的所处的事务处理阶段,只去执行请求当前阶段的处理逻辑,此外,集群节点功能模块还会根据本机负责的产品集合情况,只去处理那些归属本机产品集合的作业请求,每个节点功能模块处理完当前阶段自己负责的所有作业请求后,会将处理结果发送到主节点的架构模块,主节点架构模块会记录每个产品集合上的处理结果,当所有的产品集合上的异步作业都处理完成后,主节点架构模块执行事务的阶段切换,然后执行事务的处理完成函数,对完成的异步作业进行功能和业务上的后续处理,当处理完成后,再次执行阶段处理终结函数,其中会创建新的异步事务作业和触发消息;如果当前已经是处理的最后一个阶段,则不再继续创建新的异步事务作业,而视为整个异步的多阶段处理完成;
[0015]所述的方法还包括子阶段事务的并发处理与细粒度回滚方法:在每个阶段的处理过程中,阶段内的子事务是分布式并发处理的,每个节点上对自身负责事务的处理不受其他节点处理结果的影响,某一个节点上的处理如果出现技术错误重做事务,并不会打扰到其他节点的处理;还采取细粒度的回滚机制,该方法把一个复杂的事务在时间维度和空间维度两个层面切分成多个子事务,每个事务代表一个阶段一个产品上面的事务请求,如果在子事务处理的过程中发生业务错误,要求整个事务全部回滚,主节点架构模块在阶段处理中会采集到对应错误信息并进行必要的回滚,同时立即结束多阶段处理过程,如果在子事务处理的过程中发生技术错误,可以通过重做子事务来修正,则事务的回滚可局限在子事务层面,降低整个事务回滚时其他正常子事务重新处理的开销。
[0016]所述的方法还包括失效重演方法:处理过程中,主从节点之间进行子阶段事务分发汇总的时候,需要进行数据同步,采用节点重演的机制来进行主从节点的数据同步,利用该机制,来应对节点退出的问题,保证多主机集群系统处理复杂事务的可用性,[0017]a.主从节点的数据同步依靠重演的机制来完成,首先,交易主机节点之间通过存储区域网络共享访问磁盘,事务处理过程中,会在共享磁盘上开辟一块共享的工作页面日志文件,用于记录事务处理过程中的数据信息,工作页面日志文件记录的信息是完备的,任何一台交易主机均可根据工作页面日志文件进行主机重演,最终与写入日志的交易主机状态达成一致,上述从节点在本地创建相同的异步事务作业的机制是:主节点架构模块创建异步事务作业,并将作业相关数据记入工作页面日志文件,此后主节点架构模块触发从节点对于工作页面日志文件的重演,接下来从节点架构模块根据日志文件中记录的数据在本地创建相同的异步事务作业;
[0018]b.交易主机集群在处理事务请求的过程中,当有任意节点失效退出的时候,所有节点的架构模块都将处理节点退出事件函数,节点退出事件函数里,如果判断是从节点失效,主节点架构模块将直接更新本地的事务队列,将失效节点所在的主机上未处理完成的事务请求删除,不再视为有待处理的事务;然后检查本地的待处理事务列表,重新执行未完成的事务,这样失效主机所负责处理的产品集合上的异步作业,将转由管理该产品集合的备份交易主机继续处理,如果判断是主节点失效,集群中某一个从节点将被推举成为新的主节点,新的主节点架构模块首先根据内存工作页面日志文件中记录的数据,完成本地共享内存更新,保证本地的事务处理完成,这样在下一次定时器触发的时候,新的主节点架构模块将自动检查本地的待处理事务,触发所有的从节点重新执行未处理完成的事务。
[0019]本发明同现有技术相比,其优点在于:利用多机集群的主机计算能力,通过分布式提高多阶段分布式复杂事务的处理效率,同时通过分阶段,将事务处理失败时进行事务回滚的粒度控制在子阶段范围内,降低此类事务处理失败时回滚的成本,特别适用于证券数据处理行业里具有多阶段性、无后效性、子阶段分布性的复杂事务高效可靠处理。
[【专利附图】

【附图说明】]
[0020]图1为本发明系统部署示意图;
[0021]图2为本发明中事务请求多阶段处理流程图;
[0022]图3为本发明中节点失效备机接管流程图;
[0023]指定图1作为本发明的摘要附图。
[【具体实施方式】]
[0024]下面结合附图对本发明作进一步说明,这种系统的结构和原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0025]本发明提供一种用于处理多阶段分布式任务调度的系统,将复杂业务的处理放置在时序上多个独立自然子阶段的维度,每个子阶段又分布式进行处理,事务的完整性由协调阶段协调整个集群参与者完成所有子阶段来进行保证,事务的回滚则可以有集群参与者控制在当前子阶段的范畴,降低回滚成本。
[0026]另提供了一种在多机集群系统上针对多阶段分布式复杂事务进行的阶段控制、中央分发与汇总、子阶段事务的并发处理与细粒度回滚的方法,并提供在该处理方法下,保证系统可用性的失效重演机制,同时,提出一种用于处理多阶段分布式任务调度的高可用集群计算机系统的部署方式。
[0027]实施例1
[0028]如图1所示,图1是用于处理多阶段分布式任务调度的系统部署方式示意图,图中以两台主机构成的集群为示例,集群节点之间通过同步锁来支持主节点推举、节点间控制消息触发等功能,所有从前台发来的事务通过通信层路由到主节点的架构模块,主节点架构模块将事务数据记入共享磁盘的工作页面日志文件,并通过同步锁触发从节点架构模块对于工作页面日志文件的重演,主从节点的架构模块会将归属自己的事务请求发送到本机的功能模块执行处理,功能模块处理后的响应信息则通过通信层汇总到主节点架构模块,主节点架构模块处理完整个事务后,会通过通信层将响应信息下发回前台请求。
[0029]实施例2
[0030]图2是事务请求多阶段处理过程中,主从节点架构模块以及其功能模块协同工作的流程图,如图所示,所有的事务请求首先由主节点架构模块开始处理,主节点架构模块完成必要的校验工作后,为事务请求创建一个异步作业,并将该异步事务作业发送到功能模块执行,此后主节点架构模块立即触发从节点架构模块对于工作页面日志文件的重演,从节点架构模块即根据日志文件中记录的数据在本地创建相同的事务异步作业和请求数据,并将作业请求也发送到本地的功能模块处理,各节点的功能模块通过异步请求的方式接收到事务请求,其根据事务当前处理阶段情况执行相关的操作,并将处理完成后所有的执行结果返回到主节点架构模块,以便继续的处理。
[0031]主节点架构模块收到功能模块的执行结果后,检查当前的异步事务列表是否所有主机上的异步作业都已经完成,仅当事务请求的所有异步作业都已经完成后,主节点架构模块通过定义的阶段切换函数,执行处理阶段的切换,然后执行定义的事务处理完成函数,对当前处理阶段下的后续功能进行收尾处理,在完成了所有请求的处理,主节点架构模块通过阶段结束函数创建异步作业,此时如果事务已经处理到最后一阶段,阶段结束函数会直接返回;否则会创建新的异步作业并准备触发从节点的消息,开启下一阶段的处理流程。
[0032]完成所有阶段的处理后,主节点架构模块提交当前请求的处理事务,并最终将请求的处理结果返回给前台应用。如果处理过程中发生技术性的错误,可以在子阶段子事务层面进行回滚重做,无需回滚整个事务。
[0033]实施例3
[0034]图3为集群中节点失效后备机接管处理流程图,在集群中如果发生节点失效退出的情况,集群节点间的同步消息锁会在所有的节点上触发节点退出事件,集群上剩余节点都会响应该事件,如果是主节点失效,则新推举的主节点会根据失效主节点记录在共享磁盘上的工作页面日志文件进行重演,恢复到与失效主节点最后一个记录状态一致,然后继续接管任务处理;如果是从节点失效,则备机直接接管失效从节点的工作,由主节点重发未完成的事务给接管从节点处理,依此机制保证多阶段分布式复杂事务在主机失效的情况下仍可正确处理。
【权利要求】
1.一种用于处理多阶段分布式任务调度的系统,其特征在于所述的系统由若干台负责具体业务处理的主机组成,每台主机负责一个或者多个产品集合处理,所有的主机之间通过存储区域网络共享访问磁盘,并通过共享磁盘来进行主机间数据同步,所有交易主机之间通过分布式锁进行消息同步,每台主机均部署功能模块和架构模块,功能模块负责归属本机产品集合的请求处理,分布式子事务处理主要在每台主机的功能模块完成,架构模块负责各主机在主机集群中的通讯和协调,多阶段任务调度则主要通过架构模块实施,在主机集群工作时,主机内部会推举一台主机兼做集群主节点,其他节点则自然成为集群从节点,主节点除了要负责归属本机产品集合的处理任务以外,还需承担整个集群上异步作业的管理,包括创建集群上的异步作业、触发从节点的数据同步、汇总从节点的处理结果。
2.如权利要求1所述的一种用于处理多阶段分布式任务调度的系统,其特征在于所述的系统将需要处理的事务全集划分为多个独立性、完备性的事务处理空间,所述的独立性指不同事务的处理空间无交集,所述的完备性指其中一个产品的事务处理只需在该产品对应的事务处理空间中即可完成,将各个独立完备的事务处理空间划分到多个产品集合,并将不同产品集合分布到不同的业务主机上进行处理,整个多机集群系统为多个独立处理的节点构成,所有独立处理节点的交集为空,并集为全体事务。
3.如权利要求1或2所述的一种用于处理多阶段分布式任务调度的系统,其特征在于所述的系统中所有从前台发来的事务通过通信层路由到主节点的架构模块,主节点架构模块将事务数据记入共享磁盘的工作页面日志文件,并通过同步锁触发从节点架构模块对于工作页面日志文件的 重演,主从节点的架构模块会将归属自己的事务请求发送到本机的功能模块执行处理,功能模块处理后的响应信息则通过通信层汇总到主节点架构模块,主节点架构模块处理完整个事务后,会通过通信层将响应信息下发回前台请求。
4.如权利要求1或2所述的一种用于处理多阶段分布式任务调度的系统,其特征在于所述的系统中所有的事务请求首先由主节点架构模块开始处理,主节点架构模块完成校验工作后,为事务请求创建一个异步作业,并将该异步事务作业发送到功能模块执行,此后主节点架构模块立即触发从节点架构模块对于工作页面日志文件的重演,从节点架构模块即根据日志文件中记录的数据在本地创建相同的事务异步作业和请求数据,并将作业请求也发送到本地的功能模块处理,各节点的功能模块通过异步请求的方式接收到事务请求,其根据事务当前处理阶段情况执行相关的操作,并将处理完成后所有的执行结果返回到主节点架构模块,以便继续的处理;主节点架构模块收到功能模块的执行结果后,检查当前的异步事务列表是否所有主机上的异步作业都已经完成,仅当事务请求的所有异步作业都已经完成后,执行处理阶段的切换,然后对当前处理阶段下的后续功能进行收尾处理,在完成了所有请求的处理,主节点架构模块通过阶段结束函数创建异步作业,此时如果事务已经处理到最后一阶段,阶段结束会直接返回,否则会创建新的异步作业并准备触发从节点的消息,开启下一阶段的处理流程;完成所有阶段的处理后,主节点架构模块提交当前请求的处理事务,并最终将请求的处理结果返回给前台应用,如果处理过程中发生技术性的错误,可以在子阶段子事务层面进行回滚重做,无需回滚整个事务。
5.如权利要求1或2所述的一种用于处理多阶段分布式任务调度的系统,其特征在于所述的系统还包括集群中节点失效后备机接管处理系统,在集群中如果发生节点失效退出的情况,集群节点间的同步消息锁会在所有的节点上触发节点退出事件,集群上剩余节点都会响应该事件,如果是主节点失效,则新推举的主节点会根据失效主节点记录在共享磁盘上的工作页面日志文件进行重演,恢复到与失效主节点最后一个记录状态一致,然后继续接管任务处理;如果是从节点失效,则备机直接接管失效从节点的工作,由主节点重发未完成的事务给接管从节点处理,依此机制保证多阶段分布式复杂事务在主机失效的情况下仍可正确处理。
6.一种采用如权利要求1所述的用于处理多阶段分布式任务调度系统的调度方法,其特征在于所述的调度方法将复杂业务的处理放置在时序上多个独立自然子阶段的维度,每个子阶段又分布式进行处理,事务的完整性由协调阶段协调整个集群参与者完成所有子阶段来进行保证,事务的回滚则有集群参与者控制在当前子阶段的范畴,降低回滚成本; 具体方法如下: a.事务多阶段控制方法:在多机集群系统上,整个复杂事务被划分为时序上前后依赖的多个子阶段,分步骤进行事务处理,整个复杂事务的多阶段控制由多机集群系统的主节点承担,主节点在接收到多阶段分布式复杂事务请求后,发起第一阶段的子阶段事务处理并发布到整个集群上进行处理,主节点发起阶段处理后,会标识当前事务处理的阶段,并等待整个集群上的处理结果,当主节点汇总到集群上所有的处理完成信息后,再发起下一阶段的处理,当所有的阶段都处理完成后,主节点则完成整个复杂事务的处理,并进行提交或者回滚,将处理结果下发事务请求方; b.子事务的中央分发与汇总机制的处理方法:多阶段分布式复杂事务请求进入该集群计算机系统后,由集群 主节点的架构模块接受该请求,主节点的架构模块会对这类事务请求执行事务相关的校验工作,校验通过后则会向集群所有节点发出处理请求消息,协调整个交易主机集群开始进行事务处理,复杂事务的阶段划分以及各个阶段需要执行的工作被预先定义在各节点架构模块中,主节点架构模块会根据该定义,分阶段创建异步事务作业,同时往集群内所有节点架构模块发出处理请求,触发各个阶段事务处理的开始; 主节点在创建异步事务作业以后,一方面会将该异步事务作业发送到自己的功能模块执行,另一方面会触发从节点与主节点之间的数据同步,从节点架构模块会根据与主节点同步的数据信息,在本地创建相同的异步事务作业和请求数据,并将作业请求也发送到本地的功能模块处理,集群内部所有节点的功能模块在处理请求消息的时候,会根据当前的所处的事务处理阶段,只去执行请求当前阶段的处理逻辑,此外,集群节点功能模块还会根据本机负责的产品集合情况,只去处理那些归属本机产品集合的作业请求,每个节点功能模块处理完当前阶段自己负责的所有作业请求后,会将处理结果发送到主节点的架构模块,主节点架构模块会记录每个产品集合上的处理结果,当所有的产品集合上的异步作业都处理完成后,主节点架构模块执行事务的阶段切换,然后执行事务的处理完成函数,对完成的异步作业进行功能和业务上的后续处理,当处理完成后,再次执行阶段处理终结函数,其中会创建新的异步事务作业和触发消息;如果当前已经是处理的最后一个阶段,则不再继续创建新的异步事务作业,而视为整个异步的多阶段处理完成。
7.如权利要求6所述的一种用于处理多阶段分布式任务调度方法,其特征在于所述的方法还包括子阶段事务的并发处理与细粒度回滚方法:在每个阶段的处理过程中,阶段内的子事务是分布式并发处理的,每个节点上对自身负责事务的处理不受其他节点处理结果的影响,某一个节点上的处理如果出现技术错误重做事务,并不会打扰到其他节点的处理;还采取细粒度的回滚机制,该方法把一个复杂的事务在时间维度和空间维度两个层面切分成多个子事务,每个事务代表一个阶段一个产品上面的事务请求,如果在子事务处理的过程中发生业务错误,要求整个事务全部回滚,主节点架构模块在阶段处理中会采集到对应错误信息并进行必要的回滚,同时立即结束多阶段处理过程,如果在子事务处理的过程中发生技术错误,可以通过重做子事务来修正,则事务的回滚可局限在子事务层面,降低整个事务回滚时其他正常子事务重新处理的开销。
8.如权利要求6所述的一种用于处理多阶段分布式任务调度方法,其特征在于所述的方法还包括失效重演方法:处理过程中,主从节点之间进行子阶段事务分发汇总的时候,需要进行数据同步,采用节点重演的机制来进行主从节点的数据同步,利用该机制,来应对节点退出的问题,保证多主机集群系统处理复杂事务的可用性, a.主从节点的数据同步依靠重演的机制来完成,首先,交易主机节点之间通过存储区域网络共享访问磁盘,事务处理过程中,会在共享磁盘上开辟一块共享的工作页面日志文件,用于记录事务处理过程中的数据信息,工作页面日志文件记录的信息是完备的,任何一台交易主机均可根据工作页面日志文件进行主机重演,最终与写入日志的交易主机状态达成一致,上述从节点在本地创建相同的异步事务作业的机制是:主节点架构模块创建异步事务作业,并将作业相关数据记入工作页面日志文件,此后主节点架构模块触发从节点对于工作页面日志文件的重演,接下来从节点架构模块根据日志文件中记录的数据在本地创建相同的异步事务作业; b.交易主机集群在处理事务请求的过程中,当有任意节点失效退出的时候,所有节点的架构模块都将处理节点退出事件函数,节点退出事件函数里,如果判断是从节点失效,主节点架构模块将直接更新本地的事务队列,将失效节点所在的主机上未处理完成的事务请求删除,不再视为有待 处理的事务;然后检查本地的待处理事务列表,重新执行未完成的事务,这样失效主机所负责处理的产品集合上的异步作业,将转由管理该产品集合的备份交易主机继续处理,如果判断是主节点失效,集群中某一个从节点将被推举成为新的主节点,新的主节点架构模块首先根据内存工作页面日志文件中记录的数据,完成本地共享内存更新,保证本地的事务处理完成,这样在下一次定时器触发的时候,新的主节点架构模块将自动检查本地的待处理事务,触发所有的从节点重新执行未处理完成的事务。
【文档编号】H04L29/08GK103647834SQ201310688919
【公开日】2014年3月19日 申请日期:2013年12月16日 优先权日:2013年12月16日
【发明者】龚伟, 武剑锋, 王泊, 楼晓鸿, 林志高, 黄寅飞, 吴征, 徐乾, 白硕 申请人:上海证券交易所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1