一种任务分配方法、装置及系统的利记博彩app
【专利摘要】本发明公开了一种任务分配方法、装置及系统。所述方法包括:主控节点接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力;所述主控节点从本地获取每个计算节点的剩余计算能力,根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点;所述主控节点将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。如此,不仅可以消除轮询方式获取各个计算节点剩余计算能力消耗的通信资源,还可以节省任务分配时间,提高任务分配效率。
【专利说明】
一种任务分配方法、装置及系统
技术领域
[0001]本发明涉及数据处理领域,具体地,涉及一种任务分配方法、装置及系统。
【背景技术】
[0002]参见图1所示分布式系统的架构图,分布式系统通常由一个主控节点和多个计算节点组成。其中,主控节点接收到任务请求后,会根据各个计算节点的处理能力,即节点的剩余能力,进行任务分配。
[0003]通常,主控节点会在任务分配之前,通过轮询方式获取每个计算节点的剩余能力,也就是说,主控节点分别与每个计算节点通信,获取计算节点的剩余能力,进而根据该剩余能力,在各计算节点之间完成任务分配。
[0004]如此轮询获取剩余能力的方案,不仅会消耗主控节点与计算节点之间的通信资源,随着主控节点与各计算节点之间通信时长的不断累积,还会导致任务分配时间过长、效率低下等问题。
【发明内容】
[0005]本发明的目的是提供一种任务分配方法、装置及系统,用以消除轮询方式获取各个计算节点剩余计算能力消耗的通信资源,并节省任务分配时间,提高任务分配效率。
[0006]本发明实施例提供了一种任务分配方法,所述方法包括:主控节点接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力;所述主控节点从本地获取每个计算节点的剩余计算能力,根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点;所述主控节点将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。
[0007]可选地,所述主控节点从本地获取每个计算节点的剩余计算能力,包括:所述主控节点获取所述计算节点的总计算能力,所述总计算能力为初始配置时保存于所述主控节点本地;基于所述总计算能力,所述主控节点根据所述计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力。
[0008]可选地,所述方法还包括:所述主控节点接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力;所述主控节点判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符,如果不相符,则将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。
[0009]本发明实施例提供了一种任务分配方法,所述方法包括:可用计算节点接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定;所述可用计算节点执行所述主控节点分配的任务,并在任务执行完成后,向所述主控节点返回任务执行结果。
[0010]可选地,在任务执行完成后,所述方法还包括:获取所述可用计算节点的当前剩余计算能力;以及,所述可用计算节点向所述主控节点返回的任务执行结果中包括所述当前剩余计算能力。
[0011]本发明实施例提供了一种任务分配装置,所述装置应用于主控节点,所述装置包括:第一确定单元,用于接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力;能力获取单元,用于从所述主控节点本地获取每个计算节点的剩余计算能力;第二确定单元,用于根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点;任务分配单元,用于将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。
[0012]可选地,所述能力获取单元,用于获取所述计算节点的总计算能力;基于所述总计算能力,根据所述计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力,所述总计算能力为初始配置时保存于所述主控节点本地。
[0013]可选地,所述装置还包括:结果接收单元,用于接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力;能力判断单元,用于判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符;能力调整单元,用于在所述能力判断单元判定不相符时,将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。
[0014]本发明实施例提供了一种任务分配装置,所述装置应用于可用计算节点,所述装置包括:消息接收单元,用于接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定;任务执行单元,用于执行所述主控节点分配的任务;结果返回单元,用于在任务执行完成后,向所述主控节点返回任务执行结果。
[0015]可选地,所述装置还包括:能力获取单元,用于在任务执行完成后,获取所述可用计算节点的当前剩余计算能力;所述结果返回单元,用于向所述主控节点返回任务执行结果,所述任务执行结果中包括所述当前剩余计算能力。
[0016]本发明实施例提供了一种任务分配系统,所述系统包括应用于主控节点的任务分配装置,以及应用于可用计算节点的任务分配装置。
[0017]本发明技术方案中,主控节点缓存有每个计算节点的剩余计算能力,故在任务分配时,可以直接从本地读取,无需如现有技术需要分别与每个计算节点建立通信,实时获取每个计算节点的剩余计算能力,如此,不仅可以消除轮询方式获取各个计算节点剩余计算能力消耗的通信资源,还可以节省任务分配时间,提高任务分配效率。
[0018]本发明的其他特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0019]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0020]图1是分布式系统的架构图;
[0021 ]图2是本发明主控节点侧任务分配方法实施例1的流程图;
[0022]图3是本发明主控节点侧任务分配方法实施例2的流程图;
[0023]图4是本发明可用计算节点侧任务分配方法的流程图;
[0024]图5是本发明应用于主控节点的任务分配装置的结构示意图;
[0025]图6是本发明应用于可用计算节点的任务分配装置的结构示意图。
【具体实施方式】
[0026]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0027]参见图2,示出了本发明任务分配方法实施例1的流程图,该方法应用于主控节点侦U,可以包括:
[0028]SlOl,主控节点接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力。
[0029]S102,所述主控节点从本地获取每个计算节点的剩余计算能力,根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点。
[0030]本发明的任务分配方法,可以应用于图1所示分布式系统中。主控节点接收到任务请求消息后,可以被触发获取以下两方面信息:
[0031](I)任务请求所请求的任务需要占用的计算能力,也即本次任务分配需要消耗多少计算能力。
[0032](2)主控节点管理的多个计算节点的剩余计算能力,也即计算节点当前的执行能力。
[0033]作为一种示例,可以通过以下方式获取计算节点的剩余计算能力:首先,主控节点获取计算节点的总计算能力,其中,总计算能力为初始配置时保存于主控节点本地。其次,基于总计算能力,主控节点根据计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力。
[0034]也就是说,主控节点可以在进行初始配置时,获取计算节点的总计算能力;此外,主控节点还可以获取每次任务分配时,占用的计算节点的计算能力。如此,主控节点便可据此确定出计算节点的剩余计算能力。需要说明的是,在初始配置时将计算节点的总计算能力保存于主控节点本地,还有助于降低主控节点获取总计算能力时消耗的资源和时间。
[0035]举例来说,计算节点I的总计算能力为8,第一次任务分配占用了计算节点I的4个计算能力,若第一次任务已分配到计算节点I处执行,且未接收到计算节点I返回的任务执行结果,即,任务分配情况为已分配,任务执行情况为未完成,则主控节点可以据此确定出计算节点I的剩余计算能力为4。如果主控节点接收到计算节点I返回的任务执行结果,且未向计算节点I分配新的任务,即,任务分配情况为未分配,任务执行情况为已完成,则主控节点可以据此确定计算节点I的剩余计算能力为8。
[0036]S103,所述主控节点将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。
[0037]本发明方案中,根据实际应用的需要,可用计算节点可以是一个,也可以是多个,本发明对此可不做具体限定,可用计算节点的剩余计算能力不小于任务占用的计算能力即可。
[0038]举例来说,计算节点I的剩余计算能力为4,计算节点2的剩余计算能力为4,计算节点3的剩余计算能力为2,若任务占用的计算能力为6,则,主控节点可以将计算节点I和2确定为可用计算节点,且为了满足任务对计算能力的要求,做如下任务分配:占用计算节点I的全部剩余计算能力,即4个计算能力;占用计算节点2的部分剩余计算能力,即2个计算能力。
[0039]需要说明的是,本发明方案主要基于主控节点本地缓存的计算节点的剩余计算能力,进行任务分配,为了保证任务分配的准确性,每进行一次任务分配,主控节点需要根据任务分配情况,对可用计算节点的剩余计算能力做更新处理,确保主控节点本地缓存数据的准确性和及时性。上述示例中,主控节点进行任务分配后,计算节点I的更新后剩余计算能力为0,计算节点2的更新后剩余计算能力为2。
[0040]综上,主控节点缓存有每个计算节点的剩余计算能力,故在任务分配时,可以直接从本地读取,无需如现有技术需要分别与每个计算节点建立通信,实时获取每个计算节点的剩余计算能力,如此,不仅可以消除轮询方式获取各个计算节点剩余计算能力消耗的通信资源,还可以节省任务分配时间,提高任务分配效率。
[0041]可选地,为了进一步提高主控节点本地缓存数据的准确性,本发明还提供了任务分配方法实施例2,具体可参见图3所示流程图,还可以包括:
[0042]S201,所述主控节点接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力。
[0043]S202,所述主控节点判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符;
[0044]S203,如果不相符,则将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。
[0045]也就是说,本发明还提供一种剩余计算能力的调整方案。具体地,计算节点可以将自身的当前剩余计算能力反馈至主控节点,由主控节点根据当前剩余计算能力调整本地缓存,进一步确保缓存数据的准确性。需要说明的是,为了尽量减少主控节点与计算节点之间信息交互所消耗的通信资源,当前剩余计算能力可以携带于任务执行结果中,反馈至主控节点。
[0046]参见图4,示出了本发明任务分配方法的流程图,该方法应用于可用计算节点侧,可以包括:
[0047]S301,可用计算节点接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定。
[0048]S302,所述可用计算节点执行所述主控节点分配的任务,并在任务执行完成后,向所述主控节点返回任务执行结果。
[0049]也就是说,在主控节点进行任务分配时,计算节点无需与主控节点建立通信,实时上报本计算节点的剩余计算能力。主控节点可以直接利用其本地缓存的剩余计算能力,再结合任务所需占用的计算能力,进行任务分配,也即,计算节点直接接收主控节点发送的任务分配消息,并按照指示执行所分配的任务即可。如此,不仅可以消除轮询方式获取各个计算节点剩余计算能力消耗的通信资源,还可以节省任务分配时间,提高任务分配效率。
[0050]可选地,为了进一步提高主控节点本地缓存数据的准确性,本发明还提供了如下任务分配方案。具体地,可用计算节点可以在任务执行完成后,获取所述可用计算节点的当前剩余计算能力,并向主控节点返回包括所述当前剩余计算能力的任务执行结果。如此,主控节点便可依据当前剩余计算能力,判断是否需要调整其本地缓存的数据,确保本地缓存数据的准确性,为下一次的任务分配做好准备。
[0051]与图2所示方法相对应,本发明实施例还提供一种任务分配装置400,该装置400应用于主控节点。参见图5所示示意图,可以包括:
[0052]第一确定单元401,用于接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力;
[0053]能力获取单元402,用于从所述主控节点本地获取每个计算节点的剩余计算能力;
[0054]第二确定单元403,用于根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点;
[0055]任务分配单元404,用于将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。
[0056]可选地,所述能力获取单元,用于获取所述计算节点的总计算能力;基于所述总计算能力,根据所述计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力,所述总计算能力为初始配置时保存于所述主控节点本地。
[0057]可选地,所述装置还包括:
[0058]结果接收单元,用于接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力;
[0059]能力判断单元,用于判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符;
[0000]能力调整单元,用于在所述能力判断单元判定不相符时,将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。
[0061]与图4所示方法相对应,本发明实施例还提供一种任务分配装置500,该装置500应用于可用计算节点。参见图6所示示意图,可以包括:
[0062]消息接收单元501,用于接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定;
[0063]任务执行单元502,用于执行所述主控节点分配的任务;
[0064]结果返回单元503,用于在任务执行完成后,向所述主控节点返回任务执行结果。
[0065]可选地,所述装置还包括:
[0066]能力获取单元,用于在任务执行完成后,获取所述可用计算节点的当前剩余计算能力;
[0067]所述结果返回单元,用于向所述主控节点返回任务执行结果,所述任务执行结果中包括所述当前剩余计算能力。
[0068]相对应地,本发明实施例还提供一种任务分配系统,该系统可以包括图5所示的任务分配装置400,以及图6所示的任务分配装置500。
[0069]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0070]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0071]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种任务分配方法,其特征在于,所述方法包括: 主控节点接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力; 所述主控节点从本地获取每个计算节点的剩余计算能力,根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点; 所述主控节点将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。2.根据权利要求1所述的方法,其特征在于,所述主控节点从本地获取每个计算节点的剩余计算能力,包括: 所述主控节点获取所述计算节点的总计算能力,所述总计算能力为初始配置时保存于所述主控节点本地; 基于所述总计算能力,所述主控节点根据所述计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述主控节点接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力; 所述主控节点判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符,如果不相符,则将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。4.一种任务分配方法,其特征在于,所述方法包括: 可用计算节点接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定; 所述可用计算节点执行所述主控节点分配的任务,并在任务执行完成后,向所述主控节点返回任务执行结果。5.根据权利要求4所述的方法,其特征在于,在任务执行完成后,所述方法还包括: 获取所述可用计算节点的当前剩余计算能力;以及 所述可用计算节点向所述主控节点返回的任务执行结果中包括所述当前剩余计算能力。6.一种任务分配装置,其特征在于,所述装置应用于主控节点,所述装置包括: 第一确定单元,用于接收任务请求消息,确定所述任务请求所请求的任务占用的计算能力; 能力获取单元,用于从所述主控节点本地获取每个计算节点的剩余计算能力; 第二确定单元,用于根据所述占用的计算能力和每个计算节点的剩余计算能力,确定可用计算节点; 任务分配单元,用于将所述任务分配至所述可用计算节点,并在本地更新所述可用计算节点的剩余计算能力,获得所述可用计算节点更新后的剩余计算能力。7.根据权利要求6所述的装置,其特征在于,所述能力获取单元,用于获取所述计算节点的总计算能力;基于所述总计算能力,根据所述计算节点的任务分配情况以及任务执行情况,确定该计算节点的剩余计算能力,所述总计算能力为初始配置时保存于所述主控节点本地。8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括: 结果接收单元,用于接收所述可用计算节点返回的任务执行结果,所述任务执行结果包括所述可用计算节点的当前剩余计算能力; 能力判断单元,用于判断所述更新后的剩余计算能力与所述当前剩余计算能力是否相符; 能力调整单元,用于在所述能力判断单元判定不相符时,将所述可用计算节点的剩余计算能力调整为所述当前剩余计算能力。9.一种任务分配装置,其特征在于,所述装置应用于可用计算节点,所述装置包括: 消息接收单元,用于接收主控节点发送的任务分配消息,所述可用计算节点由所述主控节点根据任务请求所请求的任务占用的计算能力以及所述主控节点本地保存的每个计算节点的剩余计算能力确定; 任务执行单元,用于执行所述主控节点分配的任务; 结果返回单元,用于在任务执行完成后,向所述主控节点返回任务执行结果。10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 能力获取单元,用于在任务执行完成后,获取所述可用计算节点的当前剩余计算能力;所述结果返回单元,用于向所述主控节点返回任务执行结果,所述任务执行结果中包括所述当前剩余计算能力。11.一种任务分配系统,其特征在于,所述系统包括如权利要求6?8任一项所述的任务分配装置,以及权利要求9或10所述的任务分配装置。
【文档编号】G06F9/50GK106095586SQ201610474608
【公开日】2016年11月9日
【申请日】2016年6月23日
【发明人】王冰倩, 于洋, 沈牧溪, 郝健, 张霞
【申请人】东软集团股份有限公司