《用于数据分析的基于启发式的调度.pdf》由会员分享,可在线阅读,更多相关《用于数据分析的基于启发式的调度.pdf(30页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103092683 A(43)申请公布日 2013.05.08CN103092683A*CN103092683A*(21)申请号 201110347633.6(22)申请日 2011.11.07G06F 9/46(2006.01)(71)申请人 SAP股份公司地址德国瓦尔多夫(72)发明人黎文宪 T.范(74)专利代理机构北京市柳沈律师事务所 11105代理人邵亚丽(54) 发明名称用于数据分析的基于启发式的调度(57) 摘要一个调度器可以接收用于调度其在多个计算节点上的运行的多个作业。评价模块可以为多个调度算法的每一个提供公共接口。算法选择器可以将评价模块与用于多个。
2、变化类型的作业的基准数据一起利用,以将所述多个调度算法中的一个与每个作业类型关联。作业比较器可以将用于调度的当前作业相对于基准数据进行比较,以确定当前作业的当前作业类型。所述评价模块还可以基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。(51)Int.Cl.权利要求书2页 说明书19页 附图8页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书19页 附图8页(10)申请公布号 CN 103092683 ACN 103092683 A1/2页21.一种计算机系统,包括记录在计算机可读介质上并可由至少一个处理器运行的指令,所述系统包括:调度器,被配。
3、置为使得处理器接收用于调度其在多个计算节点上的运行的多个作业;评价模块,被配置为使得处理器为多个调度算法的每一个提供公共接口;算法选择器,被配置为使得处理器将评价模块与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联;以及作业比较器,被配置为使得处理器将用于调度的当前作业相对于基准数据进行比较,以确定当前作业的当前作业类型,其中,所述评价模块还被配置为基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。2.如权利要求1所述的系统,其中所述多个调度算法包括遗传算法。3.如权利要求1所述的系统,其中所述多个调度算法包括贪心算法。4.如权利要求1所述。
4、的系统,其中所述多个调度算法包括模拟退火算法。5.如权利要求1所述的系统,其中所述多个调度算法包括爬山算法。6.如权利要求1所述的系统,其中所述评价模块被配置为:以包括最小化与多个作业的完成有关的makespan的方式,在多个计算节点上调度多个作业。7.如权利要求1所述的系统,其中所述评价模块被配置为:以包括最大化多个计算节点的利用的方式,在多个计算节点上调度多个作业。8.如权利要求1所述的系统,其中,所述算法选择器被配置为:将作业的代表性工作负荷与所述评价模块以及多个算法一起使用,以构造基准数据。9.如权利要求8所述的系统,其中所述基准数据包括与根据调度所执行的计算操作相关的性能数据,利用调。
5、度算法中的每一个算法以及代表性工作负荷来实施所述调度。10.如权利要求1所述的系统,其中所述多个作业的每个作业包括多个排序的任务,并且其中所述排序的任务中的至少一些任务从在前面的排序的任务和/或从在排序的任务外部的外部数据源接收数据。11.如权利要求1所述的系统,其中所述作业比较器被配置为基于当前作业的作业名称来进行比较。12.如权利要求1所述的系统,还包括任务调度器,该任务调度器被配置为:当在选择的计算节点上调度当前作业之后,使得所述至少一个处理器实施多个算法中的搜索算法以在选择的计算节点上调度当前作业的单独任务。13.如权利要求12所述的系统,其中所述任务调度器被配置为以如下方式调度单独任。
6、务,包括:调度将在其中调度任务的离散时间单元,所述离散时间单元包括与由等待任务数据的网络交付而引起的延迟相关联的时间间隙。14.如权利要求12所述的系统,其中所述任务调度器被配置为实施搜索算法,包括:实施遗传算法、贪心算法、模拟退火算法和/或爬山算法中的一个或多个。15.一种计算机实施的方法,包括:接收用于调度其在多个计算节点上的运行的多个作业;提供用于多个调度算法中的每一个的公共接口;将公共接口与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一权 利 要 求 书CN 103092683 A2/2页3个与每个作业类型关联;相对于基准数据比较用于调度的当前作业,以确定当前作业的当前。
7、作业类型;以及基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。16.如权利要求14所述的方法,其中所述多个调度算法包括遗传算法、贪心算法、模拟退火算法和/或爬山算法中的三个或三个以上。17.如权利要求15所述的方法,包括:将作业的代表性工作负荷与公共接口以及多个算法一起使用以构造基准数据。18.如权利要求17所述的方法,其中所述基准数据包括与根据调度所执行的计算操作相关的性能数据,利用调度算法中的每一个算法以及代表性工作负荷来实施所述调度。19.一种计算机程序产品,所述计算机程序产品有形地实现在计算机可读介质上并且包括在执行时被如下配置的指令:接收用于调度其在多个计算节点上。
8、的运行的多个作业;提供用于多个调度算法中的每一个的公共接口;将公共接口与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联;相对于基准数据比较用于调度的当前作业,以确定当前作业的当前作业类型;以及基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。20.如权利要求19所述的计算机程序产品,其中当被执行时所述指令还被配置为:当在选择的计算节点上调度当前作业之后,实施多个算法中的搜索算法以在选择的计算节点上调度当前作业的单独任务。21.如权利要求20所述的计算机程序产品,其中在离散时间单元内调度所述单独任务,所述离散时间单元包括与由等待任务数据的网络。
9、交付而引起的延迟相关联的时间间隙。权 利 要 求 书CN 103092683 A1/19页4用于数据分析的基于启发式的调度技术领域0001 本说明书涉及作业调度。背景技术0002 计算资源的用户经常难以以高效的、成本有效的方式来利用这种计算资源。例如,这种用户可能具有随时间变化很大的计算需要,并且可能不希望对在高使用率时段期间管理计算性负载所必需的大量计算资源进行投资。例如,拥有大量雇员的企业可能希望,例如,在每月末仅一次地处理全部雇员的工资单。在这种情形中,企业可能在每月末要求的计算资源的数量与在本月的剩余期间需要的计算资源不成比例。从而,因为在本月的剩余期间这些计算资源的相当大部分将空闲(。
10、sit idle),所以企业投资足够的计算资源来办理以上示例的工资单处理将是低效的。在这些及其它情形中,计算资源的用户可能不愿意或不能承受与购买和管理满足所有用户的计算需要所必需的计算资源等级有关的成本。0003 因此,软件、基础架构及其它计算资源的提供商已经实现了以下商业模式(business model),在该商业模式中根据这种提供商的消费者的特定的和波动的需求,在根据需要、针对需求、动态的基础上向用户提供计算资源。这种提供商被已知为、或可以被称为“软件即服务”(Saas)提供商、和/或“基础架构即服务”(Iaas)提供商。这种提供商典型地投资于向他们的消费者远程地提供计算资源所需的相对大。
11、量的服务器和相关的计算机/网络设备。例如,在上面描述的示例中,具有所述的工资单处理需要的企业可能有与Saas提供商建立的协议,以在一个月的大部分之中利用相对低量的计算资源,而在当工资单处理发生的每月末可以访问相对更大量的计算资源。0004 从而,这种服务提供商可以向大量企业或其他消费者提供软件、基础架构及其它计算资源,并且因此可以以高效的、成本有效的方式来承受利用可用的计算资源的负担。为此,这种服务提供商典型地接收对于计算资源的请求,并且在可用的服务器或其它计算节点当中动态地调度所接收的请求。多数情况下,这种服务提供商可以配置很大量的计算资源,并且可以与相对大量的服务消费者建立服务协议,每个服。
12、务消费者都可以要求变化的和可能大量的可用的计算资源。结果,服务提供商可能难以以期望的、高效的和成本有效的方式来分配可用的计算资源。发明内容0005 根据一个一般方面,一种计算机系统可以包括记录在计算机可读介质上并可由至少一个处理器运行的指令。所述系统可以包括:调度器,被配置为使得处理器接收用于调度其在多个计算节点上的运行的多个作业;以及评价模块,被配置为使得处理器为多个调度算法的每一个提供公共接口。所述系统还可以包括:算法选择器,被配置为使得处理器将评价模块与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联;以及作业比较器,被配置为使得处理器将用于调度的当前作。
13、业相对于基准数据进行比较,以确定当前作业的当前作业类型,所述评价模块还可以被配置为基于当前说 明 书CN 103092683 A2/19页5作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。0006 根据另一个一般的方面,计算机实施的方法可以包括:接收用于调度其在多个计算节点上的运行的多个作业,以及提供用于多个调度算法中的每一个的公共接口。所述方法可以包括:将公共接口与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联,以及相对于基准数据比较用于调度的当前作业以确定当前作业的当前作业类型。所述方法还可以包括基于当前作业类型和关联的调度算法来调度当前作业。
14、在多个计算节点上运行。0007 根据另一个一般的方面,一种计算机程序产品可以有形地实现在计算机可读介质上并且可以包括执行时被如下配置的指令:接收用于调度其在多个计算节点上的运行的多个作业,以及提供用于多个调度算法中的每一个的公共接口。当所述指令被执行时还可以被配置为:将公共接口与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联;以及相对于基准数据比较用于调度的当前作业以确定当前作业的当前作业类型。当所述指令被执行时还可以被配置为:基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。0008 在附图和下面的描述中阐明一个或多个实施方式的细节。其它。
15、特征从该描述和附图以及从权利要求中将变得清楚。附图说明0009 图1是执行用于数据分析的基于启发式的调度的系统的框图。0010 图2A是示出图1的系统中的作业分布的框图。0011 图2B是示出作业任务及其数据源的示例安排的框图。0012 图3A是示出其中作业的全部任务被分配给单个节点的作业放置的框图。0013 图3B是示出其中作业的任务被独立地分配到多个节点当中的作业布置的框图。0014 图4是表示可以连同图1的调度算法一起使用的调度结果的阵列。0015 图5是示出图1的系统的示例操作的流程图。0016 图6是示出图1的系统的额外示例操作的更详细的流程图。0017 图7是示出一旦作业调度已经完。
16、成用于节点上的任务调度的技术的一系列图形。0018 图8是示出相应于图7的示例操作的流程图。具体实施方式0019 图1是用于执行用于数据分析的启发式空间调度的系统100的框图。在图1的示例中,将所有者和/或操作员102示出为对计算资源的基础架构104进行管理和维护。在图1的简化示例中,将基础架构104示出为包括多个服务器106A、106B、.106N。在示例中,由基础架构104的所有者/操作员102提供的服务的消费者108提交作业110,该作业110将使用服务器106A、106B、.106N和其它与基础架构104关联的相关计算资源完成。更具体地说,如此处详细描述的,与基础架构104关联的调度器。
17、112可以被配置为:接收作业110,并且以实现所有者/操作员102的一个或多个期望的目标的方式各服务器106A、106B、.106N上分配作业110。0020 在图1的示例中,所有者/操作员102可以表示寻求向消费者108提供计算资源说 明 书CN 103092683 A3/19页6的任何人、企业或其他实体,例如,作为由此获得利润的手段。例如,所有者/操作员102可以表示专营软件的远程提供的企业法人,或者可以表示拥有超额计算能力的企业,该企业随后使用超额计算能力来向消费者108提供计算资源。0021 如以上提到的,图1的简化示例将基础架构104示出为包括服务器106A、106B、.106N。当。
18、然,基础架构104可以包括未在图1的示例中示出的许多额外的或替换的元件,在下面更详细地描述其中一些元件。例如,可以理解地是,服务器106A、106B、.106N可以事实上表示被配置为向消费者108提供远程数据存储和处理的任何计算设备、节点或它们的群。从而,例如,基础架构104可以被理解为包括用于提供在服务器106A、106B、.106N之间和当中、以及在服务器106A、106B、.106N和调度器112之间、以及在基础架构104和通过基础架构104外部的一个或多个网络访问的任何或全部数据之间的通信的多种网络连接。此外,基础架构104可以被理解为包括由服务器106A、106B、.106N利用的一。
19、个或多个计算机存储器,或与所述一个或多个计算机存储器通信,所述计算机存储器存储与作业110关联的数据和/或代表消费者108的数据。如本领域技术人员显而易见的,这种存储器可以以一对一的、一对多的、多对一或多对多关系与服务器106A、106B、.106N关联。0022 消费者108可以事实上表示向基础架构104发送计算作业110的任何人、企业、或其他实体,以结合计算作业110利用基础架构104的计算资源。例如,如以上示例描述的,消费者108可以表示具有变化的处理需要(例如,工资单处理)的企业。在某些示例情形中,消费者108可以表示独立的基础架构(未在图1中示出)的所有者,即,消费者108自身可以是。
20、软件即服务和/或基础架构即服务的提供商。在这种示例中,消费者108可能不能满足它自己的消费者的要求等级,并且可能因此利用由所有者/操作员102提供的基础架构104的计算资源以便满足它自己的消费者要求。0023 作业110可以事实上表示对于计算相关的任务的任何请求,所述请求可以由消费者108(例如,通过可适用的计算机网络)向基础架构104提交。例如,作业110可以包括对于将关于一个或多个数据集合执行的特定计算的一个或多个请求。在其它示例实施中,作业110可以包括对于临时或长期数据存储的请求。0024 多数情况下,作业110的接收和处理可以由在所有者/操作员102和每一个消费者108之间的服务等级。
21、协议(SLA)管理。例如,这种SLA可以相对于从单个消费者108接收的其它作业或作业类型、和/或相对于从其他/不同消费者108接收的其他作业或作业类型,来规定(dictate)每个作业的优先级。多少类似地,这种SLA可以管理基础架构104的计算资源关于每个消费者108的相对可用性。此外,这种SLA可以与基于成本的测量相关联,所述基于成本的测量管理与计算机资源关联的可用性和处理时间。例如,SLA可以规定以增加的成本作为交换该消费者108可以接收更多可用性和/或处理时间。这种SLA的其它示例术语和特征为大家所熟知,并且此处在补充细节中仅描述到必需的或有助理解图1的系统100的特征与功能的程度。00。
22、25 例如,如在下面关于图2A详细描述的,每一个作业110可以包括分别地与特定计算要求关联的多个任务或子任务。从而,如在下面还将详细描述的,由给定作业110要求的数据可以与作业110的接收有关地被收到,可以与作业110的较早任务的完成有关地被收到,或者(如图1的示例中所示以及例如关于图2B在下面更详细地描述的)可以包括网络说 明 书CN 103092683 A4/19页7数据114或其它数据,该数据至少最初在相应的作业110以外、或者从相应的作业110分离出来。0026 如以上提到的以及下面将更详细地描述的,从而可以将调度器112配置为接收作业110并且在服务器106A、106B、.106N之。
23、内和当中分配作业110。在这种情况下,调度器112可以被配置为以下述方式来分配作业110:以满足消费者108和所有者/操作员102之间的各种SLA的方式,否则以部分地或完全地实现所有者/操作员102的一个或多个目标的方式。0027 例如,所有者/操作员102可能希望配置调度器102以便以最小化作业110的运行时间的方式来分配作业110。在这种情况下,所有者/操作员102可以实现消费者108的高度满意,通常可以假定消费者108期望使他们各自的作业110尽快完成。0028 另一方面,可能发生的是最小化作业110的运行时间可能与基础架构104的资源的非充分利用相关联。例如,可能存在这种情形:所有者/。
24、操作员102可能希望最大化服务器106A、106B,.106N的利用,即使以稍微降低作业110的整体运行时间为代价。例如,只要有关的运行时间在由与消费者108协商的并且由消费者108购买的各个SLA规定的参数之内,这样的结果就可能使所有者/操作员102满意。0029 因此,可以注意到,存在对调度器112分配作业110的方式进行控制的许多动态变量。当然,存在许多其它这种变量并且为本领域技术人员所知,因此未在此处更详细的描述。例如,这种变量可以包括可用的服务器的当前的数量/改变的数量(例如,诸如当添加了新的服务器和/或当一个或多个服务器经历故障时)。0030 此外,多数情况下,可能发生地是,服务器。
25、的总数“N”以及作业110的总数可能相当大。此外,可以注意到用于在N个服务器当中分配作业110的可能性的数量随更多的作业/服务器的添加而成指数增长。0031 因此,调度器112的功能可以被理解为:从全部可能或有可能性的分布之中识别任务110的分布,该识别的任务110的分布最好地满足相关的SLA和/或否则实现所有者/操作员102的期望目标。然而,仅仅作为描述,要求由调度器112搜索来识别最好的可能分布的、作业110的可能分布的搜索空间对于调度器112而言可能太大而不能在实际的时间限制内完成识别。0032 因此,调度器112包括多个算法116,该算法116被设计成能帮助调度器112调查作业110的。
26、可能分布的搜索空间,并且由此识别作业110的最佳的、近似最佳的、或可接受的分布。此外,调度器112包括评价模块118,该评价模块118被配置为提供与所有的各个算法116的公共接口、或否则具有与所有的各个算法116通信的能力。也就是说,如在下面更详细描述的,评价模块118可以被配置为:使用算法116中的任何一个算法,并且相对于所有者/操作员102的期望目标,来评价和比较各个有可能性的作业分布。例如,评价模块118可以被配置为:将可能的作业分布彼此进行评价,并且相对期望的最小化整体作业运行时间、期望的基础架构104的资源利用的最大化、或其它度量、或其组合来评价可能的作业分布。0033 如在下面详细。
27、描述的,算法116中的每一个可能特别合适于在特定的、相应的上下文中搜索所识别的期望作业分布。例如,作业110可能具有变化的特征和/或类型,并且算法116中的特定一些算法可以很好合适于对于相应类型或具有相应特征的作业来选择说 明 书CN 103092683 A5/19页8或识别期望的作业分布。0034 有些类似地,在额外的或替换的示例中,在有外部网络数据114的情况下,取决于外部网络数据114的类型或范围,算法116中的特定一些算法可能在确定期望作业分布方面特别有用。在更进一步示例中,在相对小数量的作业110将分布在相对小数量的服务器当中的情形中,算法116中的特定一些算法可能相对更有用,而算法。
28、116中的其它算法可能很好适合于在有大数量作业110将分布在大数量服务器的情况下选择/识别作业分布。尽管如此,因为评价模块118被配置为以快速、高效和实用的方式与算法116中的任何或全部算法协作,所以调度器112可以被配置为从算法116选择和利用可用的算法以便实现作业110的当前分布。0035 具体地,如所示的,调度器112可以积累基准数据120,该基准数据120包括与作业分布的先前计算关联的汇总数据和其它相关的启发。例如,在一些实施中,与调度器112的正常操作一起,基准数据120可以由调度器112随着时间汇总。在额外的或替换的示例中,基准数据120可以和调度器112的操作一起被汇总,为汇总基。
29、准数据120目的而具体地实现所述操作。0036 因此,基准数据120可以通常被理解为包括,例如,由调度器112执行的先前的作业分布处理以及可能对选择用于执行当前或将来的作业分布的算法116有用的相关数据。例如,基准数据120可以包括与名称、性质、类型或包括在基准作业分布中的相关的作业的其它特征有关的数据。基准数据120还可以包括与根据作为结果的、所选择的作业分布来执行的后续计算操作相关的性能数据。0037 因此,在特定示例中,作业110的一个或多个集合可以最初用于创建基准数据120。例如,初始作业110可以由调度器112接收并且使用算法116的任何或全部可适用的算法来调度,即,使用评价模块11。
30、8作为关于作业110的初始集合来实施算法116的公共中间件。随后,算法选择器122可以评价与各个算法116关联的结果作业分布,例如,可以评价每个算法所要求的时间长度以选择结果作业分布,和/或可以评价结果计算时间、利用率(utilization measure)、或与作业的初始集合的完成关联的其它度量。以这种方法,算法选择器122可以选择算法116中的特定一个算法,并且可以将该算法116和相关的作业/性能数据一起存储在基准数据120内。0038 随后,当作业110的当前或将来的集合被接收时,作业比较器124可以被配置为:相对于基准数据120来分析所接收的作业110,因此算法选择器122可以被配置。
31、为:从算法116中选择被确定为最佳适合于进行作业110的当前集合的分布的算法。一旦选择完,可以由评价模块118利用选择的算法116继续进行作业分布的识别和选择,所述作业分布要被用来在服务器106A、106B,.106N的可用服务器之内分配作业110。以这种方法,以最有可能实现所有者/操作员102和/或消费者108的期望目标的方式,调度器112提供用于分布作业110的定制的、最优化的、动态的技术。0039 最后,关于图1的调度器112,示出任务调度器126,可以将任务调度器126配置为排列一个或多个作业110的单独任务以在服务器106A、106B、.106N中的单独的、所分配的服务器上运行。也就。
32、是说,如此处描述的,作业110每个都可以包括多个独立的离散的任务。可以使用,例如,从先前完成的任务接收的数据和/或使用外部网络数据114来处理每个任务。从而,一旦评价模块118的操作被完成并且作业110被分布,接收发奥作业110中说 明 书CN 103092683 A6/19页9的一个作业的每个服务器可以继续运行其任务。0040 然而,如果在运行特定一个任务时存在延迟,诸如当运行的任务要求当前不可用的外部网络数据114时可能发生的,则在有关的服务器的操作中可能经历整体延迟。从而,任务调度器126可以被配置为重调度由特定服务器实施的单独任务,例如,使得如果当前任务经历诸如刚才描述的延迟以及当当前。
33、任务经历诸如刚才描述的延迟时,开始另外的后续任务的运行。具体地,如此处描述的,任务调度器126可以被配置为使用算法126中的任何一个或更多算法来运行这种调度/重调度操作。以这种方法,基础架构104的操作可以被更进一步优化。例如,关于图7和图8在下面详细描述任务调度器126的特定示例操作。0041 在图1的示例中,将调度器112示出为正在由至少一个计算设备128运行。如所示的,至少一个计算设备128可以包括至少一个处理器128A以及计算机可读存储介质128B。因此,例如,可以理解地是:图1的示例可以期待调度器112的许多不同的实现。例如,虽然在图1中将调度器112示出为在单个计算设备上运行,但是。
34、可以理解地是:可以使用可以与彼此通信的不同的计算设备实现调度器112的各个模块和相关联的功能。有些类似地,可以理解地是:可以在具有多个处理内核的单个计算设备上实现调度器112,以使得可以使用并行处理和相关联的技术实现调度器112的操作。0042 此外,虽然将至少一个计算设备128示出为和服务器106A、106B、.106N分离,但是可以理解地是:可以在一个或多个各种服务器或基础架构104的其它计算节点上、或使用一个或多个各种服务器或基础架构104的其它计算节点来实现调度器112。最后关于图1,虽然将调度器112示出和描述为包括各个独立的离散的部件,但是可以理解地是:可以使用两个或更多子部件来实。
35、现所示出的部件116-126中的任何一个的功能。相反地,可以理解地是,可以使用单个部件实现部件116-124的任何两个或更多个功能。因此,可以由本领域技术人员实现图1的系统100的许多可能变化,在下面关于图2A-8更详细地提供其中一些示例。0043 首先参照图2A,将工作负荷202示出为提供给分布式系统204。如所示,工作负荷202包括作业206、208、210、212。每个作业包括任务,例如,作业206包括任务214、216、218。调度入口220接受输入的作业提交请求,预处理作业206-212并且将它们分派到分布式系统204,即,节点222上。0044 如从图1的以上说明可以清楚的,图2A。
36、的示例中的调度入口220可以表示或包括图1的调度器112。如所示的,入口220接受输入的作业、预处理或编译查询、并且将作业分派到计算节点222上。入口220自身可以是分布式部件,但是为了说明目的,仅描述入口的调度职责,而不在这里详细地描述调度入口220的内部实现的特定细节。0045 为了不限制此处描述的示例,仅仅作为参考,作业包括多个任务。例如,查询/处理请求可以将其各独立语句下编译给物理操作员,所述语句诸如从日志读出、执行映射化简(map-reduce)运行、以及并且写至输出。假定每个作业的任务相对相同作业的其它任务形成有向无环图(DAG)。0046 作业中的每个任务可以采取两种输入形式:(。
37、1)上游任务的输出和(2)从分布式计算系统外部读入的外部数据对象,诸如从外部SQL数据库读入的数据或从网络或FTP服务器读入的文件。对于(2),数据被本地地高速缓存并且可以由运行在相同的节点上的后续任务重新使用,但是对于初始取出而言遭受网络传输延迟。图2B示出具有形成DAG的任务说 明 书CN 103092683 A7/19页10226、228、230、232的示例作业224,其中任务228、230、232从以前的任务接收数据,并且任务226、228、232从网络234的外部数据对象236、238、240接收数据。该图形中的任务可以被配置为串行运行,但是只要保持DAG配置就可以运行复杂图形。任。
38、务输入和输出可以分支;例如,执行联合(join)运算的任务可以采用多个输入,而执行分割的任务可以产生多个输出。0047 例如,不同的作业可以共享相同的任务;例如,用于执行复杂计算的存储过程可以由不同的作业重新使用。一旦任务被分配给计算节点,该节点就依序地运行任务,其中每个任务被给予该服务器上的最大的用户模式CPU利用率(与任何周期被给予操作系统和中间件部件无关)。0048 到达入口的任务以FIFO次序排队,并且调度每次执行一个工作负荷。也就是说,以周期间隔,当前在入口队列中的全部作业被调度运行,该方法允许调度器220执行将任务紧密排列(pack)到计算节点222上。在当前工作负荷正在运行时到达。
39、的作业将排队以用于调度器的下一周期迭代。0049 因此,在图2A-2B的示例的上下文中操作的图1的系统可以被配置为不仅考虑作业/任务运行时间,而且考虑从客户端站点到由SaaS/IaaS提供商作为主机的运行平台的数据加载时间。此外,图1的系统100提供用于多个作业/任务的并行运行的资源级调度以便最大化计算平台的吞吐量。更进一步,图1的系统100在作业级别考虑每个作业调度的竞争期限,并且系统100可以被用作系统级的调度工具,以及由IaaS提供商用来最大化它们的计算能力的使用。0050 如图3A所示,并且如下所述,作业在服务器上的布置影响任务的运行并且,作为结果,影响整体的工作负荷。在图3A的示例实。
40、施例和此处描述的相关示例中,如所示的,假设同一作业304、312,328的全部任务306-310、314-324、330-338分别被分配给相同的服务器222a、222b,其中任务实例的配置必须符合有向无环图。针对需求使用高速缓存302、326来高速缓存外部数据对象并且该外部数据对象可以由多个任务重新使用。0051 在替换示例中,图3B示出替换的运行模型,其中任务314-324、330-338何340-348(而不是作业)是由调度器220分别分配给计算节点222a、222b、222c的工作单元,以使得任务运行继续符合DAG约束。这个运行模式对调度器220提供额外的自由度以权衡(leverage。
41、)更多并行性。具体地,例如,因为不加限制地布置任务,所以将存在ST个可能的布置(T个任务在S个服务器上)而不是SJ个可能的布置(J个作业在S个服务器上)。除了作业仅包括一个任务的退化情况以外,如此处定义的,任务的数量T大于作业的数量J。在图3B的示例中,虚线指示在上游生产者和下游消费者之间的跨节点数据通信。同样在图3B中,特定的任务可能属于不同的作业,并且,同样,特定的任务无须与相应作业的其它任务位于相同的节点上。0052 因此,图3B的运行模型对于调度允许更多灵活性并且对于并行性允许更多机会,但是运行时间编排(orchestration)的成本会更高。在上游生产者和下游消费者之间的依赖性变得更复杂;例如,因为节点是无共享的,所以来自生产者的任何结果都可能需要通过网络传送到驻留在(reside)不同节点上的消费者。在下述实例中此方法可能是优选的:例如,消费者采用多个输入的实例,以及消费者共同位于(co-location)另一被高速缓存的数据对象或另一上游生产者所位于的节点上可能超过跨节点通信的成本的实例。说 明 书CN 103092683 A10。