[发明专利]一种支持多主机分布式数据处理的批处理方法及系统有效
申请号: | 201210362479.4 | 申请日: | 2012-09-25 |
公开(公告)号: | CN102929585A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 陈即忆;武剑锋;王泊;黄俊杰;刘经纬;何希圣;黄寅飞;郑刚;陆素源;白硕 | 申请(专利权)人: | 上海证券交易所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/46 |
代理公司: | 上海三方专利事务所 31127 | 代理人: | 吴干权 |
地址: | 200120 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 主机 分布式 数据处理 批处理 方法 系统 | ||
1.一种支持多主机分布式数据处理的批处理系统,其特征在于批处理系统中设有批处理框架,批处理框架主要包括批处理引擎程序、批处理管理和监控程序、批处理流程控制文件以及批处理批步骤定义文件,其中,流程控制文件和批步骤定义文件为两个配置文件,当批处理引擎启动后,就会遍历流程控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本信息,然后执行该脚本来完成该批步骤。
2.如权利要求1所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理引擎程序扫描批处理流程控制文件过程中,如果发现两个批步骤的配置为并行执行,则会将两个批步骤分别提交CPU并行执行;另外,流程控制文件中,将批处理步骤进行分组,不同的批处理组之间并行处理。
3.如权利要求1所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理系统采用多主机框架,多台主机使用同一个磁盘,访问相同的文件时,内存也保持一致,批处理引擎在其中一台主机中执行。
4.如权利要求1所述的一种支持多主机分布式数据处理的批处理系统,其特征在于所述的批处理框架和批处理应用程序相互分离,新增一个批处理步骤,在流程控制文件中新增该批步骤代码以及批步骤名,然后在批步骤定义文件中定义批步骤的相关信息;批步骤定义的相关信息包括需要执行的应用程序、是否需要多主机并发、是否需要多进程并发。
5.一种支持多主机分布式数据处理的批处理方法,其特征在于该方法步骤操作如下:
a)批处理框架模型
批处理引擎模块是批处理框架的核心,每一个批步骤会有一个5位数的代码,当批处理引擎启动后,就会遍历批处理流控制文件,获得下一步需要处理批步骤代码,然后根据批处理代码,从批步骤定义文件获得需要执行的脚本,然后执行该脚本来完成该批步骤,批处理引擎还会对每一个批步骤执行的结果进行检查并做相应处理;
b)批处理操控界面
批处理操控界面中,每一条记录代表一个批步骤,根据此界面查看及设置批步骤的执行状态、查看批步骤所调用的应用程序、查看执行批步骤执行日志、重新启动批处理操作;
c)流控制模型–串行处理与并行处理
对于每一个批步骤,在流控制文件FPFLWCTL中都会定义至少3条记录,批处理引擎在处理“P”记录时,会提交此批步骤所需调用的主处理程序,即应用程序到CPU,进行业务逻辑处理;处理“S”记录时,则会去同步并等待主处理程序完成;处理“C”时,会检查主处理程序是否正确的执行,当发现该批步骤的应用程序异常退出,则会将该批步骤在批步骤定义文件FPPRCSTS中的执行状态置为ERROR,同时批处理引擎停止工作,批处理监控程序一旦扫描发现有批步骤状态被置为ERROR,就会在批处理操控界面中将该批步骤置为红色,以引起运行人员注意;
所述的串行处理即每次只执行一个批处理步骤,下一个步骤只有在前一个步骤结束之后才能启动处理的执行方式,实现两个批步骤的串行处理,只需要在FPFLWCTL文件中按“P1?S1?C1?P2?S2?C2”的顺序排列两个批步骤即可;
所述的并行处理即多个相关程度较低的批处理步骤同时运行,各自处理不同的业务文件,相互之间没有影响,两个批处理步骤间的并行处理在FPFLWCTL文件中的组织方式为“P1?P2?S1?C1?S2?C2”,批处理引擎读取时,先依次读到两步批处理的P类记录P1、P2,将两个任务提交到CPU让其并行执行,然后顺序读到每一步批处理的S?C记录,依次进行同步和检查;
d)流控制模型–批步骤分组并行运行模型
批处理组是一个批处理中逻辑连贯并且功能相关的步骤的集合,这些步骤被放进一个批处理组中,可以与其它批处理组同时并行执行;
当批步骤P1,P2为第一组,即组X,P3,P4为第二组,即组Y,则要使得P1,P2与P3,P4并行,只需要在流控制文件FPFLWCTL中做如下配置:“EX?P1?S1?C1?P2?S2?C2?RX?EY?P3?S3?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)可重复执行原则
可重复执行原则就是一个批步骤可以反复执行,而输出的结果不会发生改变,在日常运行过程中,由于与上下游系统的关联,时有输入文件错误而导致批步骤异常的情况发生,当异常的批步骤满足可重复执行原则,那么运行人员只需要修正输入文件之后,重新执行该批步骤即可;
对于只涉及文件操作,而不对共享内存进行修改的批步骤,在核心处理逻辑执行之前,一般会包括一个预处理阶段,预处理阶段会校验此批步骤需要输出的文件是否存在,当存在,就会将其删除,保证每次核心处理逻辑执行时的相关环境的一致性;
而对于修改共享内存的批步骤,要实施可重复执行原则相对比较复杂,应用程序在更新共享内存的过程中,由于输入文件错误等问题报错,内存较难做到回滚,解决这个问题可以从两个角度出发,一方面,减少在更新内存过程中出错的概率,实践中,应用程序很少因为常规的内存读写出错,而往往是由于更新内存所依赖的输入文件内容和形式不合法而出错,因此,对于每一个会写共享内存的批步骤之前,都加上一个额外的批步骤校验输入文件合法性,另一方面,在共享内存更新之前设立还原点,一旦某一批步骤更新共享内存出错,就可以从还原点开始重新执行,例如,在处理新增账户和账户状态变更的文件之前,有一个还原账户信息的批步骤,即还原点,一旦账户更新报错,就可以通过执行该步骤将账户信息的共享内存恢复到更新之前。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海证券交易所,未经上海证券交易所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210362479.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内嵌堰式收油装置的环保船
- 下一篇:一种内嵌盘式收油装置的环保船