CN101038559A - 批量任务调度引擎及调度方法 - Google Patents

批量任务调度引擎及调度方法 Download PDF

Info

Publication number
CN101038559A
CN101038559A CN 200610126976 CN200610126976A CN101038559A CN 101038559 A CN101038559 A CN 101038559A CN 200610126976 CN200610126976 CN 200610126976 CN 200610126976 A CN200610126976 A CN 200610126976A CN 101038559 A CN101038559 A CN 101038559A
Authority
CN
China
Prior art keywords
task
batch
weights
scheduling
subregion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610126976
Other languages
English (en)
Other versions
CN100444121C (zh
Inventor
王雍
孙洪阁
何正平
许宜
李烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CNB2006101269769A priority Critical patent/CN100444121C/zh
Publication of CN101038559A publication Critical patent/CN101038559A/zh
Application granted granted Critical
Publication of CN100444121C publication Critical patent/CN100444121C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公开了一种批量任务调度引擎和调度方法。该调度方法包括步骤:对当前场次的批量任务进行静态特征分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;基于各个任务之间的依赖关系对任务进行分组;根据各个任务的权值,计算各组任务的组权值,其中组权值确定主调度顺序;根据分区权值,确定组内各分区的调度顺序的副调度顺序;基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略;以及利用所述调度策略,执行当前场次的批量任务的调度。利用本发明,使批量处理任务能最大化的实现对时间资源和硬件资源的集约化利用,最大限度的提升批量处理的灵活性、可维护性和容错能力。

Description

批量任务调度引擎及调度方法
技术领域
本发明涉及数据库批量处理任务调度技术领域,特别是涉及多任务、多处理器、批量处理时间受限的大型数据库批量任务调度技术。
背景技术
随着各应用领域对数据库技术的广泛使用和企业信息集成的日益深入,一方面,企业信息***的数据日益集中,且增长迅速,对于数据的批量加工、统计分析需求也层出不穷;另一方面,为保证日常联机业务的正常进行,又将批量的处理时间限定在了有限的时间范围内,而硬件资源对批量的资源占用也进行了硬性的限制。
传统的批量任务调度方式,是将批量中不同数据加工、统计任务按照固定的顺序依次执行,每增加一个新的处理需求,就编写一个新的任务,加在后面,或者干脆直接修改某一任务的处理程序,增加新的处理代码。同时,为了提高资源的使用率,对于每个任务,尽可能的按照数据分区条件(如:地区、国家、产品分类等)并发执行。
图9是传统批量任务调度引擎一种典型实现的结构框图。
如图9所示,批量任务调度主控模块11是一个软件模块,负责调度的逻辑处理,它依据用户指定的批量场次,顺序调用本场次中每个批量任务模块,并将运行结果记录到任务实例日志记录装置13,如果其中某个任务模块可并发调度,则通过分区参数记录装置12取得本场次任务的数据分区并发条件(比如一组地区、国家或者产品分类等),然后按分区并发调用该批量任务模块,并记录结果。
分区参数记录装置12是一张或者一组数据库表,其属性一般包括:分区标识(唯一)、分区名称,比如常用的有,地区号、地区名称或者国家代码、国名等。
任务实例日志记录装置13是一张或者一组数据库表,其属性一般包括:任务标识、任务名称、成功失败标志、开始时间、完成时间等。
图10是传统批量任务调度引擎一种典型的工作流程示意图,以批量任务模块1是可并发调度模块为例,演示了批量任务模块1-n被调度的流程,各步骤描述如下:
步骤200:批量管理员输入并发进程数。
步骤201:批量管理员确认按此策略执行本场批量。
步骤202:从分区参数记录装置12中取得本场批量的并发分区参数。
步骤203:按照步骤200输入的并发进程数,启动一组处理进程,每个进程分别按照一个尚未处理的分区,调用批量任务模块1,并将结果记录到任务实例日志记录装置13。
步骤204:判定步骤批量任务模块1是否执行成功,如果成功则执行205步骤,否则中断批量执行,调度结束。
步骤205:由于批量任务模块2不能并发调度,故启动一个进程,调用批量任务模块2,并将结果记录到任务实例日志记录装置13。
步骤206:判定步骤批量任务模块2是否执行成功,如果成功则执行207步骤,否则中断批量执行,调度结束。
步骤207、208:如203、204步骤(可并发调度的模块)或205、206步骤(不可并发调度的模块),顺序执行所有批量任务模块,调度结束。
这类传统而又典型的批量任务调度方式在资源利用率、容错性、灵活性、可维护性等诸多方面都已经不能适应技术与应用领域发展的需要。
发明内容
本发明克服了现有批量任务调度引擎中的不足,实现了一种完全独立于具体批量任务的参数化、智能化批量任务调度引擎,对任务的调度策略完全由运行时刻对任务静态特征和动态特征的分析来决定。
在本发明的一个方面,提供了一种批量任务调度方法,包括步骤:对当前场次的批量任务进行静态特征分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;基于各个任务之间的依赖关系对任务进行分组;根据各个任务的权值,计算各组任务的组权值,其中组权值确定主调度顺序;根据分区权值,确定组内各分区的调度顺序的副调度顺序;基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略;以及利用所述调度策略,执行当前场次的批量任务的调度。
此外,根据本发明的一个实施方式,该批量任务调度方法还包括步骤:根据各个任务在各分区的执行结果,计算下次调度时的新任务权值;以及记录各个任务的所述新任务权值。
此外,根据本发明的一个实施方式,该批量任务调度方法还包括步骤:根据各个分区的所有任务的平均执行结果,计算下次调度时的新分区权值;以及记录各分区的所述新分区权值。
此外,根据本发明的一个实施方式,该批量任务调度方法还包括步骤:如果某个任务在执行中出错,则取消所有与该任务有依赖关系的子任务的执行,其他任务则继续执行。
此外,根据本发明的一个实施方式,所述组权值是通过将组内的任务的权值相加而得到的。
在本发明的另一方面,提供了一种批量任务调度引擎,包括:静态特征记录装置,对当前场次的批量任务进行静态分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;动态特征记录装置,基于各个任务之间的依赖关系对任务进行分组,根据各个任务的权值,计算各组任务的组权值,其中组权值表示主调度顺序,根据分区权值,确定表示组内各分区的调度顺序的副调度顺序;以及主控制装置,基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略,利用所述调度策略,执行当前场次的批量任务的调度。
此外,根据本发明的一个实施方式,该批量任务调度引擎还包括:单体特征存储装置,用于存储各个任务的静态特征;依赖关系存储装置,用于存储各个任务之间的依赖关系;分区权值存储装置,用于存储各个分区的权值;以及任务权值存储装置,用于存储各个任务的权值。
此外,根据本发明的一个实施方式,该批量任务调度引擎还包括:日志记录装置,用于存储所有任务的实际调度情况,并在整场批量任务调度完成后,根据每个任务在各分区的执行结果计算的下次调度时的新任务权值记录到任务权值存储装置中,以及存储根据各个分区的所有任务的平均执行结果计算的下次调度时的新分区权值记录到分区权值记录装置中。
该引擎通过任务的原子化和静态调用特征的参数化,提高引擎的灵活性和可维护性;通过对任务间依赖关系树的分析,限制局部原子任务故障的影响,提高容错性;允许任务级、数据分区级(简称分区级)2个维度并行处理,最大限度的提升调度的吞吐能力和资源利用率;通过对每次调度任务运行特征的记录和分析,自动优化下次执行的调度策略,实现自反馈式的智能任务调度。
本发明通过以上特性的实现,使批量处理任务能最大化的实现对时间资源和硬件资源的集约化利用,最大限度的提升批量处理的灵活性、可维护性和容错能力,从而极大的提高整个企业信息***的负载能力、运转效率和生命力。
本发明提供的参数化、智能化批量任务调度引擎,将批量的调度与具体批量任务相互分离,每个原子级的批量任务均将其静态特征以参数的形式保存在数据库中,静态特征包括任务单体特征(任务场次、程序名、参数模式等)和任务间依赖关系两个部分,静态特征的参数化使得批量任务可以以参数的方式进行快速定制,适应业务领域快速发展变化的需要;也保证了引擎自身代码的稳定性,降低了维护和测试风险。
本发明通过对依赖关系树的分析,可以在某原子任务发生故障时,将故障限制在局部范围内,而不影响整体批量的运行,为***提供了容错运行的能力。
本发明实现了一种完全独立于具体批量任务的参数化、智能化批量任务调度引擎,对任务的调度策略完全由运行时刻对任务静态特征和动态特征的分析来决定,在以下方面展现出突出的优点:
1.资源利用率
本发明使用任务级、数据分区级2个维度进行并发调度,并根据分区权值、任务权值生成最优调度策略,同时提供自反馈式的权值调优机制,从而最大限度的提升了任务调度的吞吐能力和资源利用率,尽可能缩短整体处理时间。根据典型案例的试验,其资源利用率提升了32%,整体批量处理时间缩短了43%。
2.容错性
通过对依赖关系树的分析,本发明可以在某任务原子发生故障时,将故障限制在局部范围内,不影响整体批量的运行。以往批量中如果某个任务出现故障,批量管理员往往手忙脚乱,一边要制订应急方案,逐一分析其他批量任务能否先行处理,了解这些批量任务手工运行的方法,还要担心以上分析过程耽误了批量的完成时间;另一边又得同时分析故障原因,解决问题。
本发明所提供的容错运行的能力,将批量故障的影响范围最大限度的缩小,并保证其他无关联任务的正常处理,使批量管理员可以专注于故障点本身,若故障排除,批量管理员可随时将任务再交给引擎继续处理。
3.灵活性
本发明对任务的调度策略完全由运行时刻对任务静态特征和动态特征的自动分析来决定,所以具有非常好的灵活性。一方面用户只需改变各类特征参数即可自行调整调度策略;另一方面***也利用自反馈的调优方式,自动适应情况的变化。
以一个简单案例来说:某批量处理场景有一组任务需要调度,平时该组任务使用11颗CPU的处理时间为4小时,其间平均资源利用率为90.9%,任务A作为其中一个不能按分区并发的任务,由于处理时间较短,被自动置于所有任务的最后执行;某版本投产后A任务,出现性能问题,需要执行4小时,投产日该任务仍按原有策略置于任务队列的末尾,所以整体批量处理时间约为8小时,平均资源利用率骤降为50%;投产次日,引擎通过任务权值的分析,将该任务置于任务队列的顶端,整体批量任务的处理时间调优为4.4小时。
4.可维护性
本发明将批量的调度与具体的批量任务相互分离,相互间仅以任务的静态特征和动态特征作为参数化接口,使得批量任务可以以参数的方式进行快速定制,适应业务领域快速发展变化的需要,保证了引擎自身代码的稳定性,降低了维护和测试风险。
5.易用性
本发明同时提供友好的人机界面,通过颜色区分各类任务的处理状态,通过丰富的报表提供各场次每个具体任务的执行特征,帮助维护人员进行性能分析。
附图说明
从下面结合附图的详细描述中,本发明的上述特征和优点将更明显,其中:
图1本发明的***结构示意图;
图2本发明的逻辑结构示意图;
图3本发明的工作流程示意图;
图4本发明的任务调度交互界面;
图5示出了某任务多地区并发时的典型资源利用情况;
图6示出了根据本发明实施方式的批量任务调度引擎在某任务多地区并发时的资源利用情况;
图7示出了利用现有技术的批量任务调度引擎进行多任务批量任务调度场景;
图8示出了利用根据本发明实施方式的批量任务调度引擎进行多任务批量任务调度场景;
图9传统批量任务调度引擎的逻辑结构示意图;
图10传统批量任务调度引擎的工作流程示意图。
具体实施方式
下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,包含在这里的已知的功能和结构的详细描述将被省略,否则它们将使本发明的主题不清楚。
图1是本发明的***框图,它代表了一个典型的企业信息***的总体结构。
如图1所示,用户终端装置1是***的客户端,可以是一台个人PC,对于B/S(Browser/Server)结构的企业信息***,应安装有浏览器软件,它也可以是其它能够运行浏览器软件的装置,如NC、Windows图形终端等;对于C/S(Client/Server)结构的企业信息***,应安装有该***的客户端软件。另外,它还需要具备显示装置和输入装置,输入装置可以是键盘和鼠标。
联机事务处理引擎2是一个或一组软件模块,用于根据用户终端装置1发来的请求,分发到对应的联机事务处理模块3。对于B/S结构的企业信息***,它被安装于WEB/应用服务器(可以是PC服务器或者小型机等)上;对于C/S结构的企业信息***,它一般被安装于应用服务器(可以是PC服务器或者小型机等)上。
联机事务处理模块(1...n)3是一组软件模块,用于响应联机事务处理引擎2分发过来的联机事务处理请求,访问业务数据存储装置10,完成诸如新增、更新、删除、查询等事务处理。它一般和联机事务处理引擎2安装在同一物理设备上。
外部数据源装置4可以是另一个信息***的数据存储设备(例如数据库、数据交换磁带、光盘等)或者只是另一个信息***通过网络传输来的数据文件包,也可以是一个工厂信息监测采集设备,用于为数据采集引擎5提供外部数据信息,它也是整个企业信息***的外部数据接口。
数据采集引擎5是一个或一组软件模块,用于采集外部数据源,并调用业务数据采集模块(1...n)6,来完成外部数据的采集、转换、过滤、提炼处理。它一般和联机事务处理引擎2安装在同一物理设备上。
业务数据采集模块(1...n)6是一组软件模块,用于响应数据采集引擎5分发过来的业务数据采集请求,访问业务数据存储装置10,完成诸如数据采集、转换、过滤、提炼等处理。它一般和数据采集引擎5安装在同一物理设备上。
管理员终端装置7是***批量处理的客户端,可以是一台个人PC,应安装有该企业信息***的批量客户端软件。它还需要具备显示装置和输入装置,输入装置可以是键盘和鼠标。
批量任务调度引擎8是一个子***模块,即本发明在整个企业信息***中所处的位置,用于根据管理员终端装置8发来的请求,调度用相对固定的一组批量任务模块(1...n)9,完成***的批量处理工作。它一般被位于数据库服务器上。
批量任务模块(1...n)9是一组软件模块,用于响应批量任务调度引擎8分发过来的批量任务处理请求,访问业务数据存储装置10,完成诸如数据统计、采样、分析、加工、生成报表、对外提供数据等大型数据处理工作。它一般和批量任务调度引擎8安装在同一物理设备上。
业务数据存储装置10可以是一个PC服务器、小型机或主机,运行数据库管理***,负责存储和提供业务数据,它一般从业务数据采集模块(1...n)6获得各种外部数据,并从联机事务处理模块(1...n)3获取各类联机业务数据,并通过批量任务模块(1...n)9完成业务数据的统计、采用、分析、加工、生成报表等处理工作,并通过报表文件或联机展示等形式,将处理前的原始数据或者处理后的衍生信息交互式的提供给用户。
以上各***模块间对应的物理设备间,通过企业的局域网通信,可以是以太网(Ethernet),也可以是其它局域网,如光纤分布式数据接口(FDDI)、令牌环(Token-Ring)等,另外还可以通过租用专线等方式将其各个分支机构的局域网连接组成更大的企业内部网(Intranet)。
以上各***模块可能根据企业信息***的实际需要进行裁减,例如非工业信息***,不一定有外部数据源,因而外部数据源装置4、数据采集引擎5、业务数据采集模块(1...n)6可裁减。
图2是根据本发明实施方式的参数化、智能化批量任务调度引擎的结构框图。
如图2所示,批量任务调度主控模块8 1是一个软件模块,负责调度的逻辑处理,它依据用户指定的批量场次,通过任务静态特征记录装置82取得本场次涉及任务的静态特征,再通过任务动态特征记录装置83分析任务的动态特征,确定最优的调度策略。按策略完成任务调度后,批量任务调度模块81将本次任务的执行特征再记录到任务动态特征记录装置83中,为下次的策略优化进行数据准备。对于每一个执行完毕的任务和分区,批量任务调度模块81将执行结果记录到任务实例日志记录装置88。
任务静态特征记录装置82负责从任务单体特征记录装置84和任务依赖关系记录装置85取得静态特征数据。
任务动态特征记录装置83负责从分区权值记录装置86和任务权值记录装置87取得动态特征数据。
任务单体特征记录装置84是一张或一组数据库表,负责保存和提供任务的单体特征,其主要属性包括:
批量任务编号:批量任务调度引擎为每个批量任务分配的唯一的可识别标识(字符串型);
任务名称:该批量任务的中文简称;
批量场次:标识该批量任务属于何批量场次,批量场次一般按照批量的执行时间(早上、中午、晚上等)、重要程度等划分,可随时调整每个任务的场次归属;
批量存储过程:该批量任务对应的批量任务模块入口程序名;
参数传递模式:该批量任务传入参数的组织模式,比如,第一个参数是批量日期,第二个参数是地区号等,一般可以由批量任务调度引擎规定若干种参数模式标准,要求各批量任务处理模块选择使用,批量任务调度引擎可以依据“批量存储过程”和本参数,生成完整的批量任务模块入口程序调用命令串,比如:call程序名(批量日期,地区号)。
是否允许并行:标识该批量任务是否按数据分区条件并行调度。
是否允许重做:标识该批量任务遇到外部环境原因(比如磁盘空间满、硬件掉电等)导致中断后,能否不经人工处理,继续从断点处继续往下做。
任务依赖关系记录装置85是一张或一组数据库表,负责保存和提供任务间的依赖关系树,据此可对任务进行分组,送至任务动态特征记录装置83计算组权值;当批量任务调度主控模块81中某原子任务发生故障时,可利用依赖关系数据,将故障限制在局部范围内,其主要属性包括:
子批量任务编号:标识依赖关系树上的某条关系连线中的子节点编号,与任务单体特征记录装置84的批量任务编号字段构成主外键关联关系。
父批量任务编号:标识依赖关系树上的某条关系连线中的父节点编号,与任务单体特征记录装置84的批量任务编号字段构成主外键关联关系。
分区权值记录装置86是一张或一组数据库表,负责保存和提供分区权值信息,可据此决定每个任务内部的分区调度顺序;每场批量完成后,批量任务调度主控模块根据各个分区所有任务的平均执行时间,自动调整下次调度时的分区权值,为执行时间较长的分区在下次调度时,争取更多优先调度权,其主要属性包括:
批量场次:本发明允许为每个批量场次定义不同的分区权重,故可在此指定本分区权值的对应批量场次;
分区标识:分区的标识,将作为参数传递给允许并发的批量任务处理模块;
分区名称:分区的简称;
分区权重:分区的权重值(简称权值),权值较大分区,将在下次批量任务调度时拥有更多的优先调度权。该参数会在每场次批量任务全部结束后,由批量任务调度主控模块81自动设置成本分区所有任务的平均完成时间,亦可手工调整,以改变下次调度的分区优先策略。该参数初始设置成最大值999999,即对于首次执行批量任务的分区,在未知其时间代价的情况下,假设其代价为无穷大,最优先调度。
任务权值记录装置87是一张或一组数据库表,负责保存和提供任务权值信息,结合任务间的依赖关系所确定的任务分组(相互依赖的任务构成一个任务分组,无依赖关系的任务自成一组),可将组内每个任务的权值相加,得到任务组权值,然后依据任务组权值决定任务组间的调度优先顺序;由组内的依赖关系和每个任务的权重决定任务组内各任务的调度优先顺序,最终确定该场批量每个任务的调度顺序。每场批量任务调度完成后,根据每个任务在各分区的平均执行情况,自动调整下次调度时的任务权值。其主要属性包括:
批量任务编号:与任务单体特征记录装置84的批量任务编号字段构成主外键关联关系。
任务权重:任务的权重值(简称权值),权值较大任务,将在下次批量调度时拥有更多的优先调度权。该参数会在每场次批量任务全部结束后,由批量任务调度主控模块81自动设置成本分区所有任务的平均完成时间,亦可手工调整,以改变下次调度的任务优先策略。该参数初始设置成最大值999999,即对于首次执行的批量任务,在未知其时间代价的情况下,假设其代价为无穷大,最优先调度。
任务实例日志记录装置88是一张或者一组数据库表,负责保存和提供每个场次批量任务调度处理的实际执行情况,供事后查询、分析使用。任务实例日志记录装置88中记录的属性主要包括:
任务标识、任务名称、成功失败标志、开始时间、完成时间等。
批量处理日期:批量处理任务实际执行的日期
分区标识:批量处理任务实际被调用时的分区标识
批量任务编号:批量处理任务的唯一标识,与任务单体特征记录装置84的批量任务编号字段构成主外键关联关系。
批量场次:该场次批量任务调度策略所依据的任务单体特征记录装置84中对应参数值(用于审计历次参数变化对批量任务调度策略的影响)。
批量存储过程:该场次批量任务调度策略所依据的任务单体特征记录装置84中对应参数值(用于审计历次参数变化对批量任务调度策略的影响)。
参数传递模式:该场次批量任务调度策略所依据的任务单体特征记录装置84中对应参数值(用于审计历次参数变化对批量任务调度策略的影响)。
任务分组号:批量任务调度主控模块81依据任务依赖关系所确定的任务分组标识(在每场次批量中唯一,用于审计历次任务间依赖关系变化对批量调度策略的影响)。
任务组权重:批量任务调度主控模块81依据任务依赖关系所确定的任务组,以及任务组内每个任务的权值,确定的任务组权值,权值的大小标识了该任务组在当时的任务调度策略中的优先顺序(用于审计历次任务间依赖关系变化对批量调度策略的影响)。
组内顺序号:批量任务调度主控模块81依据任务依赖关系所确定的任务组,以及任务组内每个任务的权值,确定的组内调度顺序号(在每场次批量的,每个任务分组中唯一,用于审计历次任务间依赖关系变化对批量调度策略的影响)。
任务权重:该场次批量调度策略所依据的任务权值记录装置87中对应权重值(用于审计历次权值变化对批量调度策略的影响)。
分区权重:该场次批量调度策略所依据的分区权值记录装置86中对应权重值(用于审计历次权值变化对批量调度策略的影响)。
作业处理状态:该批量处理任务的执行结果,本发明为之规定了统一的作业处理状态代码,包括未处理、正在处理、成功、取消、出错(可重做)、出错(不可重做)
数据库会话号:该批量处理任务执行时对应的数据库会话号。
操作***进程号:该批量处理任务执行时对应的操作***进程号。
起始时间:该批量任务开始执行的时间。
完成时间:该批量任务结束执行的时间。
批量操作员:该批量任务执行时刻,对应的批量操作员号。
批量任务模块返回码:批量任务模块自身的返回码(0标识成功,其余可由批量任务模块自行编排)
批量任务模块返回信息:批量任务模块的返回信息,主要在出错时返回错误原因等。
图3示出了根据本发明实施方式的批量任务调度方法的流程图。如图3所示:
步骤100:批量任务调度主控模块81访问任务静态特征记录装置82,进行静态特征分析。
步骤101:在任务静态特征记录装置82中,取得本场次批量需要执行的任务单体特征,确定本场批量需要执行哪些批量任务模块,这些批量任务模块又应用何入口程序调用命令串执行等信息。
步骤102:在任务静态特征记录装置82中,根据任务间的依赖关系对将执行的任务进行分组(相互依赖的任务构成一个任务分组,无依赖关系的任务自成一组)。
步骤103:批量任务调度主控模块81访问任务动态特征记录装置83,进行动态特征分析。
步骤104:在任务动态特征记录装置83中,取得每个原子任务的权值信息,将每个任务组内每个任务的权值相加,得到任务组权值,然后依据任务组权值决定任务组间的调度优先顺序;由组内的依赖关系和每个任务的权重决定任务组内各任务的调度优先顺序,最终确定该场批量每个任务的调度顺序。
步骤105:在任务动态特特征记录装置中,依据分区权值,确定任务内部各分区的调度顺序。
步骤106:批量任务调度主控模块81生成本场次批量的完整调度策略,即每个任务组均可并发调度,由任务组权值决定优先顺序;每个任务组内的任务必须顺序调度,由依赖关系何任务权值决定优先顺序;每个任务内的分区可并发调度,由分区权值决定优先顺序。
步骤107:批量管理员输入并发进程数(一般为CPU个数-2)。
步骤108:批量管理员确认按此策略执行本场批量。
步骤109:按照输入的并发进程数,启动一组处理进程,每个进程分别按照调度策略选择下一个可执行的任务和分区。
步骤110:判定步骤109是否存在任务需要执行,如果存在则执行111步骤,否则转到114步骤;
步骤111:实际执行任务并记录执行结果到任务实例日志记录装置88中。
步骤112:判定任务是否执行成功,如果成功转向步骤109,否则转向步骤113。
步骤113:取消该出错任务所有关联的子任务,并转向步骤109。
步骤114:本场次批量任务全部完成后,根据每个任务在所有分区的平均执行情况,计算下次调度时的任务权值。
步骤115:根据每个分区所有任务的平均执行情况,计算下次调度时的分区权值。
步骤116:如果存在取消或者出错的任务,批量管理员可以选择部分或全部任务再次执行,有此类任务需要再执行,则转到步骤117,否则结束。
步骤117:指定需要执行的取消和出错任务,转到步骤109。
图4示出了本发明的任务调度交互界面。如图4,其中以不同的颜色展示了一组任务正在按任务、分区两个维度并发调度的情景,其中黑色代表待处理的任务或分区,橙色代表正在处理,绿色代表处理成功(另有红色代表一般错误、褐色代表需人工干预的错误、灰色代表取消)。
图5示出了了某任务多地区并发时的典型资源利用情况(Y轴为资源利用百分比),可以看出由于数据量的差异,各地区任务处理时间存在差异,如果按照随机方式调度各地区的任务,某些大的地区被排在了小地区之后执行时,会出现其他地区已经完成,只等几个大的地区的情况,所以越到最后资源利用率越低,按图5计算后易知资源利用效率仅有60%。
如上所述,根据本发明的实施方式,如果将地区的规模大小设立权值(对地区称为地区权值,对分区称为分区权值),调度时按照权值大小进行顺序调度,则会产生大小任务配对执行的效果,从而提高了并发度。图6示出了根据本发明实施方式的批量任务调度引擎执行任务时的资源利用情况。如下图6所示,其资源利用率提高到了85%,任务完成时间缩短了25%。
此外,传统的任务调度引擎只提供按数据分区条件(如:国家、地区、产品分类等,以下仍以地区为例)进行一维并发调度,而不支持各任务之间的并发,即任务之间仍然是串行的,这样资源的利用率不高。
图7示出了利用现有技术的批量任务调度引擎进行多任务批量任务调度场景。由于B任务必须等到A任务的最后一个地区执行完成,即使这时只有一个CPU被使用,也只能等待;而D任务是一个不可按地区并发的任务,其资源利用率就会更低,整个批量任务调度的资源利用率仅有56.7%,即使引入分区权值机制,按照前面案例的经验值估计也仅提升到80%左右。
但是,根据本发明的实施方式,在不违背依赖关系的前提下,引入任务维度的并发能力,使引擎的资源利用效率获得大幅提升。图8示出了利用根据本发明实施方式的批量任务调度引擎进行多任务批量任务调度场景。如图8所示,在引入分区权值和任务并发机制的情况下,其资源利用率可接近90%。
上面的描述仅用于实现本发明的实施方式,本领域的技术人员应该理解,在不脱离本发明的范围的任何修改或局部替换,均应该属于本发明的权利要求来限定的范围,因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (9)

1.一种批量任务调度方法,包括步骤:
对当前场次的批量任务进行静态特征分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;
基于各个任务之间的依赖关系对任务进行分组;
根据各个任务的权值,计算各组任务的组权值,其中组权值确定主调度顺序;
根据分区权值,确定组内各分区的调度顺序的副调度顺序;
基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略;以及
利用所述调度策略,执行当前场次的批量任务的调度。
2.如权利要求1所述的批量任务调度方法,其特征在于,还包括步骤:
根据各个任务在各分区的执行结果,计算下次调度时的新任务权值;以及
记录各个任务的所述新任务权值。
3.如权利要求2所述的批量任务调度方法,其特征在于,还包括步骤:
根据各个分区的所有任务的执行结果,计算下次调度时的新分区权值;以及
记录各分区的所述新分区权值。
4.如权利要求1所述的批量任务调度方法,其特征在于,还包括步骤:
如果某个任务在执行中出错,则取消所有与该任务有依赖关系的子任务的执行,其他任务则继续执行。
5.如权利要求1所述的批量任务调度方法,其特征在于,所述组权值是通过将组内的任务的权值相加而得到的。
6.一种批量任务调度引擎,包括:
静态特征记录装置,对当前场次的各批量任务进行静态分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;
动态特征记录装置,基于各个任务之间的依赖关系对任务进行分组,根据各个任务的权值,计算各组任务的组权值,其中组权值表示主调度顺序,根据分区权值,确定表示组内各分区的调度顺序的副调度顺序;以及
主控制装置,基于所述主调度顺序和所述副调度顺序,形成当前场次的批量任务的调度策略,利用所述调度策略,在不违反依赖关系的前提下,以任务、分区两维度并发,执行当前场次的批量任务的调度。
7.根据权利要求6所述的批量任务调度引擎,其特征在于,还包括:
单体特征存储装置,用于存储各个任务的静态特征;
依赖关系存储装置,用于存储各个任务之间的依赖关系;
分区权值存储装置,用于存储各个分区的权值;以及
任务权值存储装置,用于存储各个任务的权值。
8.如权利要求6所述的批量任务调度引擎,其特征在于,还包括:
日志记录装置,用于存储所有任务的实际调度情况,并在整场批量任务调度完成后,根据每个任务在各分区的执行结果计算的下次调度时的新任务权值记录到任务权值存储装置中,以及根据各个分区的所有任务的平均执行结果计算的下次调度时的新分区权值记录到分区权值记录装置中。
9.如权利要求6所述的批量任务调度引擎,其特征在于,所述组权值是通过将组内的任务的权值相加而得到的。
CNB2006101269769A 2006-09-11 2006-09-11 批量任务调度引擎及调度方法 Active CN100444121C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101269769A CN100444121C (zh) 2006-09-11 2006-09-11 批量任务调度引擎及调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101269769A CN100444121C (zh) 2006-09-11 2006-09-11 批量任务调度引擎及调度方法

Publications (2)

Publication Number Publication Date
CN101038559A true CN101038559A (zh) 2007-09-19
CN100444121C CN100444121C (zh) 2008-12-17

Family

ID=38889476

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101269769A Active CN100444121C (zh) 2006-09-11 2006-09-11 批量任务调度引擎及调度方法

Country Status (1)

Country Link
CN (1) CN100444121C (zh)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882161A (zh) * 2010-06-23 2010-11-10 中国工商银行股份有限公司 应用级异步任务调度***和方法
CN102004666A (zh) * 2010-11-25 2011-04-06 中国工商银行股份有限公司 一种大型计算机作业排程设备及***
CN102214236A (zh) * 2011-06-30 2011-10-12 北京新媒传信科技有限公司 一种海量数据处理方法和***
CN102236580A (zh) * 2010-04-26 2011-11-09 阿里巴巴集团控股有限公司 为etl任务分配节点的方法和调度***
CN102609875A (zh) * 2012-01-20 2012-07-25 中国工商银行股份有限公司 一种动态并行处理银行数据的方法及***
CN102929695A (zh) * 2012-09-18 2013-02-13 曙光信息产业(北京)有限公司 一种基于预约的批量作业调度方法
CN103365708A (zh) * 2012-04-06 2013-10-23 阿里巴巴集团控股有限公司 任务调度方法和装置
CN104598234A (zh) * 2015-01-13 2015-05-06 北京京东尚科信息技术有限公司 一种处理业务的方法及装置
CN105573866A (zh) * 2009-07-14 2016-05-11 起元技术有限责任公司 以容错方式处理批量输入数据的方法和***
CN106055315A (zh) * 2016-05-19 2016-10-26 乐视控股(北京)有限公司 批量任务的处理方法及***
CN106293920A (zh) * 2016-08-15 2017-01-04 北京票之家科技有限公司 任务调度方法及装置
CN102722381B (zh) * 2011-03-25 2017-03-01 微软技术许可有限责任公司 优化升级任务的技术
CN106648842A (zh) * 2016-12-27 2017-05-10 中国建设银行股份有限公司 一种批量作业续跑方法及装置
WO2017088189A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种用户数据处理方法、相关装置及***
CN107370808A (zh) * 2017-07-13 2017-11-21 盐城工学院 一种用于对大数据任务进行分布式处理的方法
CN107506906A (zh) * 2017-08-02 2017-12-22 贵州工程应用技术学院 一种基于数据处理的任务智能调度引擎设计方法
CN107665144A (zh) * 2016-07-29 2018-02-06 北京京东尚科信息技术有限公司 分布式任务的均衡调度中心、方法、***和装置
CN107885600A (zh) * 2017-10-19 2018-04-06 用友网络科技股份有限公司 批量定时任务的调度方法、装置和计算机设备
CN108228329A (zh) * 2018-02-02 2018-06-29 观相科技(上海)有限公司 一种分组调度***
CN108537543A (zh) * 2018-03-30 2018-09-14 百度在线网络技术(北京)有限公司 区块链数据的并行处理方法、装置、设备和存储介质
CN108920261A (zh) * 2018-05-23 2018-11-30 中国航天***科学与工程研究院 一种适于大规模并行数据处理任务的两级自适应调度方法
CN108958923A (zh) * 2017-05-25 2018-12-07 上海华为技术有限公司 一种调度硬件加速器的方法以及调度设备
CN109389286A (zh) * 2018-09-03 2019-02-26 阿里巴巴集团控股有限公司 一种业务处理、调度、分批方法、装置、设备及介质
CN109639653A (zh) * 2018-11-29 2019-04-16 中国人民银行清算总中心 基于分布式网银***的报文传输方法及***
CN110083442A (zh) * 2019-03-18 2019-08-02 咪咕文化科技有限公司 一种用户任务的操作方法、服务器及可存储介质
CN110287018A (zh) * 2019-07-04 2019-09-27 中国工商银行股份有限公司 批量任务编排方法及装置
CN104991821B (zh) * 2015-06-29 2019-12-06 北京奇虎科技有限公司 批量处理监控任务的方法及装置
CN110673939A (zh) * 2019-09-23 2020-01-10 汉纳森(厦门)数据股份有限公司 一种基于airflow和yarn的任务调度方法、装置及介质
CN110704170A (zh) * 2019-09-09 2020-01-17 深圳壹账通智能科技有限公司 批量任务处理方法、装置、计算机设备和存储介质
CN110795219A (zh) * 2019-10-24 2020-02-14 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 适用于多种计算框架的资源调度方法及***
CN112035230A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 一种任务调度文件生成方法、装置及存储介质
CN112148491A (zh) * 2020-09-27 2020-12-29 京东数字科技控股股份有限公司 数据处理方法及装置
CN112562114A (zh) * 2020-12-18 2021-03-26 北京百度网讯科技有限公司 数据采集的方法及装置
CN113626237A (zh) * 2021-07-21 2021-11-09 上海云轴信息科技有限公司 批量操作信息的故障定位方法及设备
WO2022067531A1 (zh) * 2020-09-29 2022-04-07 深圳大学 一种计算资源感知的任务调度方法
CN115373804A (zh) * 2022-10-27 2022-11-22 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种云基础设施中面向网络试验的虚拟机调度方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252496A (zh) * 2013-06-28 2014-12-31 国际商业机器公司 用于提供资源访问的方法和***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093250B1 (en) * 2001-10-11 2006-08-15 Ncr Corporation Priority scheduler for database access
US20040244005A1 (en) * 2003-05-30 2004-12-02 Ancier Leland J. Automatic urgency calculator and task scheduler
CN100345132C (zh) * 2003-07-28 2007-10-24 华为技术有限公司 一种并行处理的方法及***
CN100377091C (zh) * 2006-03-16 2008-03-26 浙江大学 嵌入式操作***分组硬实时任务调度的实现方法

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573866B (zh) * 2009-07-14 2018-11-13 起元技术有限责任公司 以容错方式处理批量输入数据的方法和***
CN105573866A (zh) * 2009-07-14 2016-05-11 起元技术有限责任公司 以容错方式处理批量输入数据的方法和***
CN102236580B (zh) * 2010-04-26 2013-03-20 阿里巴巴集团控股有限公司 为etl任务分配节点的方法和调度***
CN102236580A (zh) * 2010-04-26 2011-11-09 阿里巴巴集团控股有限公司 为etl任务分配节点的方法和调度***
CN101882161A (zh) * 2010-06-23 2010-11-10 中国工商银行股份有限公司 应用级异步任务调度***和方法
CN101882161B (zh) * 2010-06-23 2012-07-04 中国工商银行股份有限公司 应用级异步任务调度***和方法
CN102004666A (zh) * 2010-11-25 2011-04-06 中国工商银行股份有限公司 一种大型计算机作业排程设备及***
CN102722381B (zh) * 2011-03-25 2017-03-01 微软技术许可有限责任公司 优化升级任务的技术
CN102214236A (zh) * 2011-06-30 2011-10-12 北京新媒传信科技有限公司 一种海量数据处理方法和***
CN102214236B (zh) * 2011-06-30 2013-10-23 北京新媒传信科技有限公司 一种海量数据处理方法和***
CN102609875A (zh) * 2012-01-20 2012-07-25 中国工商银行股份有限公司 一种动态并行处理银行数据的方法及***
CN103365708A (zh) * 2012-04-06 2013-10-23 阿里巴巴集团控股有限公司 任务调度方法和装置
CN103365708B (zh) * 2012-04-06 2017-03-22 阿里巴巴集团控股有限公司 任务调度方法和装置
CN102929695B (zh) * 2012-09-18 2016-12-21 曙光信息产业(北京)有限公司 一种基于预约的批量作业调度方法
CN102929695A (zh) * 2012-09-18 2013-02-13 曙光信息产业(北京)有限公司 一种基于预约的批量作业调度方法
CN104598234A (zh) * 2015-01-13 2015-05-06 北京京东尚科信息技术有限公司 一种处理业务的方法及装置
CN104598234B (zh) * 2015-01-13 2018-10-30 北京京东尚科信息技术有限公司 一种处理业务的方法及装置
CN104991821B (zh) * 2015-06-29 2019-12-06 北京奇虎科技有限公司 批量处理监控任务的方法及装置
WO2017088189A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种用户数据处理方法、相关装置及***
CN106055315A (zh) * 2016-05-19 2016-10-26 乐视控股(北京)有限公司 批量任务的处理方法及***
CN107665144A (zh) * 2016-07-29 2018-02-06 北京京东尚科信息技术有限公司 分布式任务的均衡调度中心、方法、***和装置
CN107665144B (zh) * 2016-07-29 2021-02-26 北京京东尚科信息技术有限公司 分布式任务的均衡调度中心、方法、***和装置
CN106293920A (zh) * 2016-08-15 2017-01-04 北京票之家科技有限公司 任务调度方法及装置
CN106648842A (zh) * 2016-12-27 2017-05-10 中国建设银行股份有限公司 一种批量作业续跑方法及装置
CN108958923A (zh) * 2017-05-25 2018-12-07 上海华为技术有限公司 一种调度硬件加速器的方法以及调度设备
CN107370808A (zh) * 2017-07-13 2017-11-21 盐城工学院 一种用于对大数据任务进行分布式处理的方法
CN107506906A (zh) * 2017-08-02 2017-12-22 贵州工程应用技术学院 一种基于数据处理的任务智能调度引擎设计方法
CN107885600A (zh) * 2017-10-19 2018-04-06 用友网络科技股份有限公司 批量定时任务的调度方法、装置和计算机设备
CN108228329A (zh) * 2018-02-02 2018-06-29 观相科技(上海)有限公司 一种分组调度***
CN108537543A (zh) * 2018-03-30 2018-09-14 百度在线网络技术(北京)有限公司 区块链数据的并行处理方法、装置、设备和存储介质
CN108537543B (zh) * 2018-03-30 2023-07-28 百度在线网络技术(北京)有限公司 区块链数据的并行处理方法、装置、设备和存储介质
CN108920261A (zh) * 2018-05-23 2018-11-30 中国航天***科学与工程研究院 一种适于大规模并行数据处理任务的两级自适应调度方法
CN108920261B (zh) * 2018-05-23 2020-03-24 中国航天***科学与工程研究院 一种适于大规模并行数据处理任务的两级自适应调度方法
CN109389286A (zh) * 2018-09-03 2019-02-26 阿里巴巴集团控股有限公司 一种业务处理、调度、分批方法、装置、设备及介质
CN109389286B (zh) * 2018-09-03 2022-11-18 阿里巴巴集团控股有限公司 一种业务处理、调度、分批方法、装置、设备及介质
CN109639653A (zh) * 2018-11-29 2019-04-16 中国人民银行清算总中心 基于分布式网银***的报文传输方法及***
CN110083442A (zh) * 2019-03-18 2019-08-02 咪咕文化科技有限公司 一种用户任务的操作方法、服务器及可存储介质
CN110083442B (zh) * 2019-03-18 2021-12-07 咪咕文化科技有限公司 一种用户任务的操作方法、服务器及可存储介质
CN110287018A (zh) * 2019-07-04 2019-09-27 中国工商银行股份有限公司 批量任务编排方法及装置
CN110704170A (zh) * 2019-09-09 2020-01-17 深圳壹账通智能科技有限公司 批量任务处理方法、装置、计算机设备和存储介质
CN110673939B (zh) * 2019-09-23 2021-12-28 汉纳森(厦门)数据股份有限公司 一种基于airflow和yarn的任务调度方法、装置及介质
CN110673939A (zh) * 2019-09-23 2020-01-10 汉纳森(厦门)数据股份有限公司 一种基于airflow和yarn的任务调度方法、装置及介质
CN110795219A (zh) * 2019-10-24 2020-02-14 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 适用于多种计算框架的资源调度方法及***
CN110795219B (zh) * 2019-10-24 2022-03-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 适用于多种计算框架的资源调度方法及***
CN112035230A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 一种任务调度文件生成方法、装置及存储介质
CN112035230B (zh) * 2020-09-01 2023-08-18 中国银行股份有限公司 一种任务调度文件生成方法、装置及存储介质
CN112148491A (zh) * 2020-09-27 2020-12-29 京东数字科技控股股份有限公司 数据处理方法及装置
CN112148491B (zh) * 2020-09-27 2023-12-05 京东科技控股股份有限公司 数据处理方法及装置
WO2022067531A1 (zh) * 2020-09-29 2022-04-07 深圳大学 一种计算资源感知的任务调度方法
CN112562114A (zh) * 2020-12-18 2021-03-26 北京百度网讯科技有限公司 数据采集的方法及装置
US11733693B2 (en) 2020-12-18 2023-08-22 Beijing Baidu Netcom Science Technology Co., Ltd. Data acquisition method and apparatus
CN113626237A (zh) * 2021-07-21 2021-11-09 上海云轴信息科技有限公司 批量操作信息的故障定位方法及设备
CN115373804A (zh) * 2022-10-27 2022-11-22 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种云基础设施中面向网络试验的虚拟机调度方法
CN115373804B (zh) * 2022-10-27 2023-03-07 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种云基础设施中面向网络试验的虚拟机调度方法

Also Published As

Publication number Publication date
CN100444121C (zh) 2008-12-17

Similar Documents

Publication Publication Date Title
CN101038559A (zh) 批量任务调度引擎及调度方法
CN1300693C (zh) 用于调节***资源的使用的装置及其方法
CN1959717A (zh) 订单驱动的海量遥感数据集群化预处理***及其方法
CN1956457A (zh) 用于安排网格计算***中的网格作业的方法和设备
CN100341281C (zh) 一种在网络***中实现任务管理的方法
CN1783123A (zh) 基于资源需求和业务影响的过程执行管理
CN1902588A (zh) 在次最佳网格环境中维持应用工作
CN1956456A (zh) 用于在网格计算***中呈现资源要求的方法和设备
CN1913525A (zh) 自动响应来自网格客户机的作业请求的方法和***
CN1223025A (zh) 实时估价控制***及与之相关的方法
CN1267427A (zh) 电信性能管理***
CN1828541A (zh) Java操作***中定时任务的实现方法
CN1975720A (zh) 一种基于Web的数据挖掘***及其控制方法
CN1906600A (zh) 计算实用工具的分级资源管理
CN1450469A (zh) 数据处理装置、数据处理方法及程序
CN101031886A (zh) 网络***、管理计算机、集群管理方法以及计算机程序
CN1755661A (zh) 信息处理装置以及方法和程序
CN1229728C (zh) 具有会话管理和分布式管理功能以及相应的操作管理机制的web应用***
CN1889045A (zh) 多任务软件***中并发事件的处理装置和方法
CN1842078A (zh) 网格服务容器
CN1315045C (zh) 一种对机群实现集中并发管理的方法
CN1259623C (zh) 基于j2ee的五层体系结构构建方法
CN1306407C (zh) 为动态提供而自主地自学习资源选择的方法和***
CN1835450A (zh) 网格作业管理器
CN1949223A (zh) 一种联机分析处理***中多维数据读写的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant