一种支持多主机分布式数据处理的批处理方法及系统的制作方法

文档序号:6377748阅读:357来源:国知局
专利名称:一种支持多主机分布式数据处理的批处理方法及系统的制作方法
一种支持多主机分布式数据处理的批处理方法及系统本发明涉及信息数据处理技术领域,具体是一种支持多主机分布式数据处理的批处理方法及系统。随着证券交易市场的日益蓬勃和成熟,交易数据量也越来越大,对交易及处理系统的稳定性和处理效率都有较高的要求。在每个交易日交易时间段过后,交易系统就开始对当日的交易进行清算,然后处理复杂的非实时成交业务。这类盘后处理过程,业内通常称为批处理。简单的说,批处理就是将不同的任务进行分组,即分批,然后按照一定的顺序执行这些任务的过程。
根据业务复杂程度的不同,批处理系统的复杂程度也不尽相同。最简单的批处理系统可以是一个简单、直观的SHELL程序,例如现有技术中有一种固定收益平台的批处理系统,此类批处理系统可以满足比较简单的业务需求。但是其效率、可扩展性,以及使用的便利性都有比较明显的问题。比如,如果需要增加一段处理逻辑,就需要修改该SHELL程序,对所有的其他业务都会有较大影响。现有技术中,大宗交易系统的批处理系统通常是一个基于UNIX的CR0NTAB的轻量级数据处理系统。一方面,CR0NTAB为周期性调用应用程序逻辑提供了较大的便利,另一方面,其局限性也是十分的明显。首先,其不具备高可用性。使用CR0NTAB意味着应用程序被执行的时间点是固定的,当某一应用程序所依赖的上游系统故障而需要推迟该应用程序时,需要人工干预。第二,异常处理能力较差。基于CR0NTAB,并没有一个统筹的管理程序负责对于各个应用程序的执行情况进行监控。当某一个应用程序执行出错时,并不能及时反馈运行人员。在实践中,往往是下游系统运行人员将错误通知到该批处理系统的运行人员。第三,各批步骤耦合性较高,扩展性不佳。在CR0NTAB配置文件中,所有的批步骤都被赋予了一个时间点。亦即在时间点的维度上,所有的批步骤都相关。而实际操作中,一般批步骤之间最大的相关性应该是先后顺序,而非实际的时间点。其限制了时间点,却未必能保证实际执行顺序,因此不够稳定可靠,在现有市场中还未能有一种处理效率高、安全稳定且可靠的批处理系统来满足日益丰富的数据量。本发明的目的就是为了解决现有技术中的不足和缺陷,提供一种耦合性高、扩展性佳、安全、稳定、可靠的支持多主机分布式数据处理的批处理方法及系统。为实现上述目的,设计一种支持多主机分布式数据处理的批处理方法及系统,其特征在于批处理系统中设有批处理框架,批处理框架主要包括批处理引擎程序、批处理管理和监控程序、批处理流程控制文件以及批处理批步骤定义文件,其中,流程控制文件和批步骤定义文件为两个配置文件,当批处理引擎启动后,就会遍历流程控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本信息,然后执行该脚本来完成该批步骤。所述的批处理引擎程序扫描批处理流程控制文件过程中,如果发现两个批步骤的配置为并行执行,则会将两个批步骤分别提交CPU并行执行;另外,流程控制文件中,将批处理步骤进行分组,不同的批处理组之间并行处理。所述的批处理系统采用多主机框架,多台主机使用同一个磁盘,访问相同的文件时,内存也保持一致,批处理引擎在其中一台主机中执行。所述的批处理框架和批处理应用程序相互分离,新增一个批处理步骤,在流程控制文件中新增该批步骤代码以及批步骤名,然后在批步骤定义文件中定义批步骤的相关信息;批步骤定义的相关信息包括需要执行的应用程序、是否需要多主机并发、是否需要多进程并发。一种支持多主机分布式数据处理的批处理方法,其特征在于该方法步骤操作如下
a.批处理框架模型批处理引擎模块是批处理框架的核心,每一个批步骤会有一个5位数的代码,当批处理引擎启动后,就会遍历批处理流控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本,然后执行该脚本来完成该批步骤,批处理引擎还会对每一个批步骤执行的结果进行检查并做相应处理;b.批处理操控界面批处理操控界面中,每一条记录代表一个批步骤,根据此界面查看及设置批步骤的执行状态、查看批步骤所调用的应用程序、查看执行批步骤执行日志、重新启动批处理操作;c.流控制模型-串行处理与并行处理对于每一个批步骤,在流控制文件FPFLWCTL中都会定义至少3条记录,批处理引擎在处理“P”记录时,会提交此批步骤所需调用的主处理程序,即应用程序到CPU,进行业务逻辑处理;处理“S”记录时,则会去同步并等待主处理程序完成;处理“C”时,会检查主处理程序是否正确的执行,当发现该批步骤的应用程序异常退出,则会将该批步骤在批步骤定义文件FPPRCSTS中的执行状态置为ERROR,同时批处理引擎停止工作,批处理监控程序一旦扫描发现有批步骤状态被置为ERROR,就会在批处理操控界面中将该批步骤置为红色,以引起运行人员注意;所述的串行处理即每次只执行一个批处理步骤,下一个步骤只有在前一个步骤结束之后才能启动处理的执行方式,实现两个批步骤的串行处理,只需要在FPFLWCTL文件中按“P1S1C1P2S2C2”的顺序排列两个批步骤即可;所述的并行处理即多个相关程度较低的批处理步骤同时运行,各自处理不同的业务文件,相互之间没有影响,两个批处理步骤间的并行处理在FPFLWCTL文件中的组织方式为“P1P2S1C1S2C2”,批处理引擎读取时,先依次读到两步批处理的P类记录P1、P2,将两个任务提交到CPU让其并行执行,然后顺序读到每一步批处理的SC记录,依次进行同步和检查;a.流控制模型-批步骤分组并行运行模型批处理组是一个批处理中逻辑连贯并且功能相关的步骤的集合,这些步骤被放进一个批处理组中,可以与其它批处理组同时并行执行;当批步骤Pl,P2为第一组,即组X,P3,P4为第二组,即组Y,则要使得Pl,P2与P3, P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EXP1S1C1P2S2C2RXEYP3S3C3P4S4C4RYSXCXSYCY”,其中EX, EY和RX,RY分别为批处理组的入口和出口,当批处理引擎处理到一个批处理组的入口 EX时,批处理引擎会再出创建出一个批处理引擎,专门用于处理该批处理组中的批步骤,如此,组X和组Y就由两个并行的批处理引擎进行处理;b.批处理定义文件批步骤定义文件,定义了每一个批步骤的各项属性,包括该批步骤调用的应用程序、批步骤是否需要在多主机执行多进程并发执行、批步骤执行状态,竞价撮合平台的批处理系统将持仓全部落地,对应批步骤70381 GEN_CCYE_IS,由于持仓信息较大,而且分布在不同主机的内存中,因此需要多主机并行处理,同时,为了进一步加快速度,每一个主机亦 同时有2个相同的进程在并行执行,实现上述的多主机多进程并发,只需要将FPPRCSTS的配置字段Set In Memory Flag设置为2 ;c.多主机并发模型当某个批步骤采用多主机并发模式处理,批处理引擎在每一台主机上分别提交该批步骤的主处理程序,提交的每一个主处理程序称为一个实例,这样,每一台主机有一个主处理程序在执行同样的处理逻辑,而该主处理程序会遍历驱动文件的每一个待处理资源所对应的记录,每当一个实例读取驱动文件中的一条记录时,就会在该条记录上加上一把锁,处理完后,在该记录上加上“已完成”的标签,而任何实例是不会去处理带锁或者已完成的记录的,如此,两个执行在不同主机上的同一个主处理程序,协同并发的完成了处理;d.可重复执行原则可重复执行原则就是一个批步骤可以反复执行,而输出的结果不会发生改变,在日常运行过程中,由于与上下游系统的关联,时有输入文件错误而导致批步骤异常的情况发生,当异常的批步骤满足可重复执行原则,那么运行人员只需要修正输入文件之后,重新执行该批步骤即可;对于只涉及文件操作,而不对共享内存进行修改的批步骤,在核心处理逻辑执行之前,一般会包括一个预处理阶段,预处理阶段会校验此批步骤需要输出的文件是否存在,当存在,就会将其删除,保证每次核心处理逻辑执行时的相关环境的一致性;而对于修改共享内存的批步骤,要实施可重复执行原则相对比较复杂,应用程序在更新共享内存的过程中,由于输入文件错误等问题报错,内存较难做到回滚,解决这个问题可以从两个角度出发,一方面,减少在更新内存过程中出错的概率,实践中,应用程序很少因为常规的内存读写出错,而往往是由于更新内存所依赖的输入文件内容和形式不合法而出错,因此,对于每一个会写共享内存的批步骤之前,都加上一个额外的批步骤校验输入文件合法性,另一方面,在共享内存更新之前设立还原点,一旦某一批步骤更新共享内存出错,就可以从还原点开始重新执行,例如,在处理新增账户和账户状态变更的文件之前,有一个还原账户信息的批步骤,即还原点,一旦账户更新报错,就可以通过执行该步骤将账户信息的共享内存恢复到更新之前。批处理引擎根据流程控制文件中的P、S、C、R、E记录进行不同的处理,其具体逻辑步骤为
a.对应一个批步骤读取流程控制文件中下一条记录;b.批步骤记录类型记录为P时,执行此批步骤对应的执行程序,执行完成后回到步骤a,当执行不成功则报错;批步骤记录类型记录为S时,同步当前处理的批步骤,一直到当前步骤的执行程序执行完成,执行完成后回到步骤a,当执行不成功则报错;批步骤记录类型记录为C时,检查此部批步骤对应的执行逻辑是否成功执行,执行完成后回到步骤a,当执行不成功则报错;批步骤记录类型记录为E时,生成一个子批处理引擎,从当前批步骤开始执行,并记录当前标注为“E”的批步骤名;批步骤记录类型记录为R时,判断是否与之前类型为“E”的批步骤记录同名,当是则结束,当不成功则报错。对于驱动文件记录加锁的处理方式其具体步骤为a.读取驱动文件下一条记录;b.判断当前记录是否尚未被处理,当已处理则回到步骤a,当未处理则进入步骤c ;c.更新驱动文件中该记录状态,将其状态置为“P”,表示正在处理;d.根据当前处理的驱动文件记录调用对应的处理逻辑;·e.更新驱动文件该记录状态,将其状态置为“C”,表示处理完毕。本发明同现有技术相比,具有较大的突破和优势,解决了现有技术中的诸多不足和缺陷,本发明中的批处理系统是一套有高并发性、高可用性、高可扩展性的系统。其设计达到了下述的技术效果I.批处理框架与应用逻辑分离。批处理框架提供一套灵活且可配置的流程控制方案,使开发人员能够方便地增减批处理任务,调整任务的前后顺序。2.批处理框架对每个批步骤的执行情况进行实时监控并反馈运行人员。3.支持批步骤串行和并行执行相结合的处理方式,提高批处理执行效率。4.支持多主机多进程并发的分布式处理。5.批处理各批步骤之间耦合度小。批步骤可以重复运行。显著提高批处理容错能力。6.提供友好的人机交互界面,运行人员能够对任一批步骤进行暂停、恢复等控制。7.本发明显著地提升了主机进行批处理的性能和稳定性。图I为本发明的批处理框架图;图2为本发明的流程控制文件处理流程图;图3为本发明的多主机分布式模型;图4是本发明驱动文件记录锁处理流程图;指定图I为本发明的摘要附图
。[具体实施方式
]下面结合附图对本发明作进一步说明,这种系统和方法的原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。本发明提供了一个批处理框架,作为一个批处理系统的基础。批处理框架主要包括批处理引擎程序,批处理管理和监控程序,批处理流程控制文件以及批处理批步骤定义文件。其中,流程控制文件和批步骤定义文件为两个配置文件。当批处理引擎启动后,就会遍历流程控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本信息,然后执行该脚本来完成该批步骤。为了实现批处理的高并发性,需要在批处理流程文件中做相应的配置。批处理引擎程序扫描批处理流程控制文件过程中,当发现两个批步骤的配置为并行执行,则会将两个批步骤分别提交CPU并行执行。另外,流程控制文件中,亦可以将批处理步骤进行分组。不同的批处理组之间并行处理。为了实现多主机并发,批步骤定义文件中对于批步骤是否 在各个主机都要执行,以及在每个主机中执行多少个实例都进行了描述,批处理引擎根据其定义完成多主机多进程并发。为了实现交易系统的高可用性,本发明中的批处理系统使用多主机框架。多台主机使用同一个磁盘,访问相同的文件时,内存也保持一致。批处理引擎在其中一台主机中执行。当该主机发生宕机时,批处理引擎异常退出。此时,其他主机的批处理监控进程就能发现正在执行的批步骤出错,并将错误信息反馈运行人员。运行人员只需要在任一其他主机中重新启动批处理即可。另外,对于批处理引擎所在的主机,某一个批步骤执行出错,批处理监控界面就会将出错的批步骤用红色标注出来,批处理引擎也会停止执行。运行人员分析报错原因,排除障碍后,直接重新执行批处理引擎,批处理系统即可恢复。为了实现批处理系统的高可扩展性,批处理框架和批处理应用程序相互分离。新增一个批处理步骤,只需要在流程控制文件中新增该批步骤代码以及批步骤名,然后在批步骤定义文件中定义批步骤的相关信息即可。批步骤定义的相关信息包括需要执行的应用程序、是否需要多主机并发、是否需要多进程并发等等。批处理根据流程控制文件和批步骤定义文件的相关信息,可以准确的执行应用程序逻辑。I、批处理框架模型如图I所示,批处理框架主要包括批处理引擎程序,批处理管理和监控程序,批处理流程控制文件以及批处理批步骤定义文件。批处理引擎模块是批处理框架的核心。当批处理引擎启动后,就会遍历批处理流控制文件,获得下一步需要处理的批步骤代码,每一个批步骤会有一个5位数的代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本,然后执行该脚本来完成该批步骤。批处理引擎还会对每一个批步骤执行的结果进行检查并做相应处理。如图I中所示,FPFLWCTL为批处理流程控制文件,定义了所有批步骤的顺序和组织结构,包括分组情况;FPPRCSTS为批步骤定义文件,定义了每一个批步骤的各项属性。包括该批步骤调用的脚本、批步骤是否需要在多主机执行、批步骤执行状态等;FPFILL0G为逻辑名定义文件,用简单名字定义了文件的物理地址;FPAUT0为批处理配置文件,主要用于存放一些配置项;批处理引擎为框架的核心程序,通过读取批处理流程控制文件、批步骤定义文件来协调整个批处理;批处理管理和监控为用户界面核心程序,为操作人员提供友好的操作界面;批处理步骤为实际批处理步骤调用的程序;日志文件为包括步骤日志,系统错误日志和操作员日志三种日志文件。2、批处理操控界面批处理操控界面中,每一条记录代表一个批步骤。本界面为运行人员提供了十分友好的用户体验。运行人员可以根据此界面查看及设置批步骤的执行状态、查看批步骤所调用的应用程序、查看执行批步骤执行日志、重新启动批处理等操作。3、流控制模型-串行处理与并行处理对于每一个批步骤,在流控制文件FPFLWCTL中都会定义至少3条记录。例如批步骤70330 GEN_DDRZ_FILE有以下3条记录70330 P GEN_DDRZ_FILE
70330 S GEN_DDRZ_FILE70330 C GEN_DDRZ_FILE批处理引擎在处理“P”记录时,会提交此批步骤所需调用的主处理程序,即应用程序到CPU,进行业务逻辑处理;处理“S”记录时,则会去同步/等待主处理程序完成;处理“C”时,会检查主处理程序是否正确的执行,如果发现该批步骤的应用程序异常退出,则会将该批步骤在批步骤定义文件FPPRCSTS中的执行状态置为ERROR,同时批处理引擎停止工作。批处理监控程序一旦扫描发现有批步骤状态被置为ERROR,就会在批处理操控界面中将该批步骤置为红色,以引起运行人员注意。所谓串行处理即每次只执行一个批处理步骤,下一个步骤只有在前一个步骤结束之后才能启动处理的执行方式实现两个批步骤的串行处理,只需要在FPFLWCTL文件中按“P1S1C1P2S2C2”的顺序排列两个批步骤即可。所谓并行处理即多个相关程度较低的批处理步骤同时运行,各自处理不同的业务文件,相互之间没有影响。两个批处理步骤间的并行处理在FPFLWCTL文件中的组织方式为“P1P2S1C1S2C2”。批处理引擎读取时,先依次读到两步批处理的P类记录,即P1、P2,将两个任务提交到CPU让其并行执行,然后顺序读到每一步批处理的SC记录,依次进行同步和检查4、流控制模型-批步骤分组并行运行模型批处理组是一个批处理中逻辑连贯并且功能相关的步骤的集合,这些步骤被放进一个批处理组中,可以与其它批处理组同时并行执行。假设批步骤Pl,P2为第一组,即组X,P3,P4为第二组,即组Y,则要使得Pl,P2与P3, P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EXP1S1C1P2S2C2RXEYP3S3C3P4S4C4RYSXCXSYCY”,其中EX, EY和RX, RY分别为批处理组的入口和出口。当批处理引擎处理到一个批处理组的入口,例如EX时,批处理引擎会再出创建出一个批处理引擎,专门用于处理该批处理组中的批步骤。如此,组X和组Y就由两个并行的批处理引擎进行处理。该实施例中竞价撮合平台的批处理系统需要处理以下业务表I业务处理流程
Mb理代号I批步骤名称 I业务
79521WAIT_0EF_TC 等待开放式基金数据
19401|GEN—0FD04 I处理开放式基金成交数据—
权利要求
1.一种支持多主机分布式数据处理的批处理系统,其特征在于批处理系统中设有批处理框架,批处理框架主要包括批处理引擎程序、批处理管理和监控程序、批处理流程控制文件以及批处理批步骤定义文件,其中,流程控制文件和批步骤定义文件为两个配置文件,当批处理引擎启动后,就会遍历流程控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本信息,然后执行该脚本来完成该批步骤。
2.如权利要求I所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理引擎程序扫描批处理流程控制文件过程中,如果发现两个批步骤的配置为并行执行,则会将两个批步骤分别提交CPU并行执行;另外,流程控制文件中,将批处理步骤进行分组,不同的批处理组之间并行处理。
3.如权利要求I所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理系统采用多主机框架,多台主机使用同一个磁盘,访问相同的文件时,内存也保持一致,批处理引擎在其中一台主机中执行。
4.如权利要求I所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理框架和批处理应用程序相互分离,新增一个批处理步骤,在流程控制文件中新增该批步骤代码以及批步骤名,然后在批步骤定义文件中定义批步骤的相关信息;批步骤定义的相关信息包括需要执行的应用程序、是否需要多主机并发、是否需要多进程并发。
5.一种支持多主机分布式数据处理的批处理方法,其特征在于该方法步骤操作如下 a)批处理框架模型 批处理引擎模块是批处理框架的核心,每一个批步骤会有一个5位数的代码,当批处理引擎启动后,就会遍历批处理流控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本,然后执行该脚本来完成该批步骤,批处理引擎还会对每一个批步骤执行的结果进行检查并做相应处理; b)批处理操控界面 批处理操控界面中,每一条记录代表一个批步骤,根据此界面查看及设置批步骤的执行状态、查看批步骤所调用的应用程序、查看执行批步骤执行日志、重新启动批处理操作; c)流控制模型-串行处理与并行处理 对于每一个批步骤,在流控制文件FPFLWCTL中都会定义至少3条记录,批处理引擎在处理“P”记录时,会提交此批步骤所需调用的主处理程序,即应用程序到CPU,进行业务逻辑处理;处理“S”记录时,则会去同步并等待主处理程序完成;处理“C”时,会检查主处理程序是否正确的执行,当发现该批步骤的应用程序异常退出,则会将该批步骤在批步骤定义文件FPPRCSTS中的执行状态置为ERROR,同时批处理引擎停止工作,批处理监控程序一旦扫描发现有批步骤状态被置为ERROR,就会在批处理操控界面中将该批步骤置为红色,以引起运行人员注意; 所述的串行处理即每次只执行一个批处理步骤,下一个步骤只有在前一个步骤结束之后才能启动处理的执行方式,实现两个批步骤的串行处理,只需要在FPFLWCTL文件中按.71、51、(1、?2、52、02”的顺序排列两个批步骤即可; 所述的并行处理即多个相关程度较低的批处理步骤同时运行,各自处理不同的业务文件,相互之间没有影响,两个批处理步骤间的并行处理在FPFLWCTL文件中的组织方式为“P1、P2、S1、C1、S2、C2”,批处理引擎读取时,先依次读到两步批处理的P类记录P1、P2,将两个任务提交到CPU让其并行执行,然后顺序读到每一步批处理的s、c记录,依次进行同步和检查; d)流控制模型-批步骤分组并行运行模型 批处理组是一个批处理中逻辑连贯并且功能相关的步骤的集合,这些步骤被放进一个批处理组中,可以与其它批处理组同时并行执行; 当批步骤Pl,P2为第一组,即组X,P3,P4为第二组,即组Y,则要使得Pl,P2与P3,P4并行,只需要在流控制文件FPFLWCTL中做如下配置“EX、P1、S1、C1、P2、S2、C2、RX、EY、P3、S.3、C3、P4、S4、C4、RY、SX、CX、SY、CY”,其中EX, EY和RX, RY分别为批处理组的入口和出口,当批处理引擎处理到一个批处理组的入口 EX时,批处理引擎会再出创建出一个批处理引擎,专门用于处理该批处理组中的批步骤,如此,组X和组Y就由两个并行的批处理引擎进行处理; e)批处理定义文件 批步骤定义文件,定义了每一个批步骤的各项属性,包括该批步骤调用的应用程序、批步骤是否需要在多主机执行多进程并发执行、批步骤执行状态,竞价撮合平台的批处理系统将持仓全部落地,对应批步骤70381 GEN_CCYE_IS,由于持仓信息较大,而且分布在不同主机的内存中,因此需要多主机并行处理,同时,为了进一步加快速度,每一个主机亦同时有2个相同的进程在并行执行,实现上述的多主机多进程并发,只需要将FPPRCSTS的配置字段 Set In Memory Flag 设置为 2 ; f)多主机并发模型 当某个批步骤采用多主机并发模式处理,批处理引擎在每一台主机上分别提交该批步骤的主处理程序,提交的每一个主处理程序称为一个实例,这样,每一台主机有一个主处理程序在执行同样的处理逻辑,而该主处理程序会遍历驱动文件的每一个待处理资源所对应的记录,每当一个实例读取驱动文件中的一条记录时,就会在该条记录上加上一把锁,处理完后,在该记录上加上“已完成”的标签,而任何实例是不会去处理带锁或者已完成的记录的,如此,两个执行在不同主机上的同一个主处理程序,协同并发的完成了处理; g)可重复执行原则 可重复执行原则就是一个批步骤可以反复执行,而输出的结果不会发生改变,在日常运行过程中,由于与上下游系统的关联,时有输入文件错误而导致批步骤异常的情况发生,当异常的批步骤满足可重复执行原则,那么运行人员只需要修正输入文件之后,重新执行该批步骤即可; 对于只涉及文件操作,而不对共享内存进行修改的批步骤,在核心处理逻辑执行之前,一般会包括一个预处理阶段,预处理阶段会校验此批步骤需要输出的文件是否存在,当存在,就会将其删除,保证每次核心处理逻辑执行时的相关环境的一致性; 而对于修改共享内存的批步骤,要实施可重复执行原则相对比较复杂,应用程序在更新共享内存的过程中,由于输入文件错误等问题报错,内存较难做到回滚,解决这个问题可 以从两个角度出发,一方面,减少在更新内存过程中出错的概率,实践中,应用程序很少因为常规的内存读写出错,而往往是由于更新内存所依赖的输入文件内容和形式不合法而出错,因此,对于每一个会写共享内存的批步骤之前,都加上一个额外的批步骤校验输入文件合法性,另一方面,在共享内存更新之前设立还原点,一旦某一批步骤更新共享内存出错,就可以从还原点开始重新执行,例如,在处理新增账户和账户状态变更的文件之前,有一个还原账户信息的批步骤,即还原点,一旦账户更新报错,就可以通过执行该步骤将账户信息的共享内存恢复到更新之前。
6.如权利要求5所述的一种支持多主机分布式数据处理的批处理方法,其特征在于批处理引擎根据流程控制文件中的P、S、C、R、E记录进行不同的处理,其具体逻辑步骤为 a)对应一个批步骤读取流程控制文件中下一条记录; b)批步骤记录类型记录为P时,执行此批步骤对应的执行程序,执行完成后回到步骤a,当执行不成功则报错; 批步骤记录类型记录为S时,同步当前处理的批步骤,一直到当前步骤的执行程序执行完成,执行完成后回到步骤a,当执行不成功则报错; 批步骤记录类型记录为C时,检查此批步骤对应的执行逻辑是否成功执行,执行完成后回到步骤a,当执行不成功则报错; 批步骤记录类型记录为E时,生成一个子批处理引擎,从当前批步骤开始执行,并记录当前标注为“E”的批步骤名; 批步骤记录类型记录为R时,判断是否与之前类型为“E”的批步骤记录同名,当是则结束,当不成功则报错。
7.如权利要求5所述的一种支持多主机分布式数据处理的批处理方法,其特征在于对于驱动文件记录加锁的处理方式其具体步骤为 a)读取驱动文件下一条记录;b)判断当前记录是否尚未被处理,当已处理则回到步骤a,当未处理则进入步骤c; c)更新驱动文件中该记录状态,将其状态置为“P”,表示正在处理; d)根据当前处理的驱动文件记录调用对应的处理逻辑; e)更新驱动文件该记录状态,将其状态置为“C”,表示处理完毕。
全文摘要
本发明涉及信息数据处理技术领域,具体是一种支持多主机分布式数据处理的批处理方法及系统。批处理系统中设有批处理框架,批处理框架主要包括批处理引擎程序,批处理管理和监控程序,批处理流程控制文件以及批处理批步骤定义文件,其中,流程控制文件和批步骤定义文件为两个配置文件,当批处理引擎启动后,就会遍历流程控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本信息,然后执行该脚本来完成该批步骤。本发明同现有技术相比,具有较大的突破和优势,解决了现有技术中的诸多不足和缺陷,本发明中的批处理系统是一套有高并发性、高可用性、高可扩展性的系统。
文档编号G06F9/38GK102929585SQ201210362479
公开日2013年2月13日 申请日期2012年9月25日 优先权日2012年9月25日
发明者陈即忆, 武剑锋, 王泊, 黄俊杰, 刘经纬, 何希圣, 黄寅飞, 郑刚, 陆素源, 白硕 申请人:上海证券交易所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1