什么是成批调度程序介绍
成批调度程序(batch scheduler)是指可以提高处理批量任务的效率,提高系统稳定性的批量处理系统任务量的程序。
成批调度程序简介
批量调度程序,包括参数设置装置,用户通过该装置设置系统参数和任务处理相关参数,并将设置的参数存储到数据存储装置中;预处理装置,用于对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置中;调度引擎装置,用于定时侦测系统当前并发处理任务量,计算系统可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置;任务处理装置,用于接收从调度引擎装置传输过来的批量任务处理线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理。通过该程序,可以提高处理批量任务的效率,提高系统稳定性。
成批调度程序技术领域
本发明涉及批量数据处理技术领域,具体涉及一种提升运算处理效率、有效利用系统资源实现批量处理的系统及方法。
成批调度程序背景技术
在大型的在线交易系统中,总是存在大量的批量作业。
成批调度程序处理模式
一般而言,批量作业的处理模式主要有两种。
一是采取联机实时处理的方式,也就是常说的联机小批量。该种方法时效性很高, 但是联机小批量方式在以联机方式处理批量任务时,并不判断数据处理系统的忙闲,实时上送实时处理,由于批量任务中任务密集度高,将迅速占用大量的系统资源,给系统带来极大的压力,导致整个系统处理速度降低,甚至存在宕机风险;而且批量任务处理一般会集中使用某一个或某几个用户数据,所用用户数据被长时间锁住,使得客户的在线联机任务需要等待数据锁定的解除,导致影响客户联机任务。
另一种批量任务处理方式是采取按照场次定时处理的方式,一般安排在业务量较小的固定时段按照批量场次集中处理,如早晨、中午、晚间等。对于该种方式,传统上是将批量中不同数据加工、统计任务按照固定的顺序依次执行,每增加一个新的处理需求,就编写一个新的任务,加在后面,或者干脆直接修改某一任务的处理程序,增加新的处理代码。同时,为了提高资源的使用率,对于每个任务,按照数据分区条件(如地区、国家、产品分类等)并发执行。但是固定的任务顺序会因个别任务导致执行时间过长,或因为一个任务出错影响整个批量执行;而分区划分也比较固定,各分区执行时间长短差距较大,执行中存在等待,时间资源、系统资源得不到充分利用。
成批调度程序成批调度程序
针对传统处理方式,专利号为ZL200610126976. 9、发明名称为“一种批量任务调度引擎和调度方法”提出了一种调度方法对当前场次的批量任务进行静态特征分析,以获得用参数表示的各个任务的单体特征和任务之间的依赖关系;基于各个任务之间的依赖关系对任务进行分组;根据各个任务的权值,计算各组任务的组权值,其中组权值确定主调度顺序;根据分区权值,确定组内各分区的调度顺序的副调度顺序;基于所述主调度顺序和所述副调度顺序, 形成当前场次的批量任务的调度策略;以及利用所述调度策略,执行当前场次的批量任务的调度。通过该方法,使批量处理任务实现任务、分区两维度并发,对固定时段的批量场次内时间资源和硬件资源集约化利用,提升了批量处理的灵活性、可维护性和容错能力。
成批调度程序不足
该方法仍是将批量任务安排在固定时段的批量场次中执行,存在如下不足包括:
处理不及时,很难满足时效性要求较高的业务要求。
随着批量任务的迅速增加,在固定时段内已很难或无法完成当天的全部批量任务
在非批量场次的时段内,系统资源有时存在空闲,并没有得到充分利用。
如果可以打破固定时段批量场次,不仅可以大幅增加批量处理时间,还可以使数据处理系统资源得到充分利用发明内容。
成批调度程序包含装置
为了克服现有技术的上述问题,本发明提出了一种批量调度系统和方法。
批量调度程序包括
- 参数设置装置,用户通过该装置设置系统参数和任务处理相关参数,并将设置的参数存储到数据存储装置中;
预处理装置,用于对批量任务进行预处理,并将处理后产生的任务输出到数据存储装置中;
调度引擎装置,用于定时侦测系统当前并发处理任务量,计算系统可分配的处理各渠道上送批量任务的线程数,并将结果输出给任务处理装置;
任务处理装置,用于接收从调度引擎装置传输过来的批量任务处理线程数,调整内部线程,根据任务优先次序参数,读取经过预处理后的任务,进行任务处理;
数据存储装置,用于接收并存储参数设置装置设置或计算得到的参数、各渠道上送的批量任务以及预处理装置生成的任务和任务处理日志。
任务数据分析装置,用于记录与任务量相关的信息,计算某一时段内的渠道特征值和时点特征值,并将计算结果存储在数据存储装置中。
成批调度程序工作原理
- 调度引擎装置根据从数据存储装置中获取系统最大并发处理任务量、当前时段的渠道特征值和时点特征值,计算可分配的处理各渠道上送批量任务的线程数。
所述调度引擎装置进一步包括任务量侦测单元,按照预先设定的时间间隔,定时获取所述系统当前并发处理任务量N,输出给调度决策单元,其中N是自然数;调度决策单元,从系统参数设置单元读取系统最大并发处理任务量M,计算M是否大于N,如果大于,则计算当前时段系统能够分配给各渠道上传的批量任务的处理线程数T,其中M和T为自然数。
任务处理装置进一步包括线程控制单元,将系统可分配给各渠道上传的批量任务的处理线程数T与处理任务量N所需的处理线程数进行比较,如果比较结果为T大,则增加线程,并启动应增加的线程,如果T小,则减少线程,并标记多余线程,待其当前任务完成后释放该线程;任务接收单元获取任务优先次序参数,根据优先级高低顺序,读取T条任务;任务处理单元,根据读取顺序处理所述任务。
系统可分配给各渠道上传的批量任务的处理线程数T通过以下公式计算T=(M-N) XI^XI^B,其中M表示系统最大并发处理任务量,N表示系统当前并发处理任务量,Pa = SUM(Sa)/SUM(S),1 表示渠道特征值,是指在历史的某一个时段,某渠道向所述系统上送任务量占所述系统收到的所有任务量的占比,Μ表示某一天,某一时段内某一渠道提交的任务数,SUM(Sa)表示一年内,所述时段内所述渠道提交的任务总数,S表示某一天,某一时段内所述系统收到的全部任务数,SUM(S)表示一年内,所述时段内所述系统收到的任务总数,Pb = SUM (Sb)/SUM (S), Pb表示时点特征值,是指在历史的某一个时段,所述系统接收到的批量任务在所述系统接收到的全部任务中的占比,Sb表示某一天,某一时段内所述系统接收的批量任务数,SUM(Sb)表示一年内,所述时段内所述系统接收的批量任务总数,S表示所述某一天,某一时段内所述系统收到的全部任务数,SUM(S)表示一年内,所述时段内所述系统收到的任务总数。
参数设置装置进一步包括系统参数设置单元,用户通过此单元设置所述系统最大并发处理交易任务量M,设置扫描系统实时并发交易任务量的时间间隔,输出到数据存储装置中;任务优先次序规则参数设置单元,用户通过此单元设置不同任务类型的处理优先级次序,输出到数据存储装置中;任务预处理规则参数设置单元,用户通过此单元设置所述系统在接收到一个批量任务时所需要做的预处理工作,输出到数据存储装置中。
预处理装置进一步包括批量任务接收单元,用于从数据存储装置的参数存储单元中读取任务优先次序参数,根据优先次序从数据存储装置的批量任务存储单元中, 读取各渠道提交到所述系统中的批量任务,输出给任务预处理单元;任务预处理参数读入单元,该单元从数据存储装置中读取某一任务类型的预处理参数,输出给任务预处理单元; 任务预处理单元,获取批量任务接收单元输入的批量任务,以及任务预处理参数读入单元输入的该种任务类型的批量任务对应的预处理参数,对批量任务进行排序、汇总处理,将处理后产生的任务输出到数据存储装置的任务存储单元中。
成批调度程序优点
这种批量调度程序和方法,能够充分利用系统资源,并且在不影响在线的联机任务请求处理的前提下,全天候处理批量任务,既能满足针对不同业务特点的时效性要求,又能够根据系统负载情况动态决定批量处理方式,大大提高了系统处理效率,同时有效控制系统超负荷的风险。
根据数据处理系统的任务并发量,在系统空闲时,控制处理各渠道上送批量任务的线程数,从而达到既充分利用系统资源,又不影响在线的联机任务请求处理的及时性;
进一步的,批量任务在提交到本系统时首先进行账号的排序、账务汇总等预处理工作,以降低系统处理的复杂度,提高处理批量任务的效率,从而大大降低数据处理系统超负荷运行的风险,提高了系统的处理运行效率。
该系统包括参数设置装置100、 任务数据分析装置200、预处理装置300、调度引擎装置400、任务处理装置500和数据存储装置600。其中,参数设置装置100、任务数据分析装置200、预处理装置300、调度引擎装置 400、任务处理装置500均与数据存储装置600相连接,调度引擎装置400还连接于任务处理装置500。参数设置装置100用于用户通过该装置设置系统参数和任务处理参数,并将设置好的参数存储到数据存储装置600中。
所述系统参数包含两个系统最大并发处理任务量和扫描系统实时并发任务量的时间间隔。所述任务处理参数包括两类任务预处理参数,该参数决定了所述系统对接收到的不同渠道上送的批量任务,按照任务类型进行的预处理方式;任务优先次序参数,该参数决定了不同任务类型间的处理顺序。所述渠道指与所述系统相连接的、受理客户提交的批量或联机任务请求并将任务请求提交给所述系统进行任务处理的外围系统或应用,如网上银行、电话银行或自助机具等。