一种任务调度方法、节点及系统的制作方法_4

文档序号:8248181阅读:来源:国知局
的子任务数 量;或者,子任务缓冲区中的未执行的子任务数量,其中,在分布式系统初次使用时,当存储 信息为子任务缓冲区中还需的子任务数量时,第一服务器节点的任务分配器获取到的子任 务缓冲区的存储信息为子任务缓冲区能够容纳的子任务的总数量;或者,当存储信息为子 任务缓冲区中的未执行的子任务数量时,第一服务器节点的任务分配器获取到的子任务缓 冲区的存储信息为0。
[0162] 406、第一服务器节点的任务分配器对至少一个任务执行节点中设置的待执行任 务对应的子任务缓冲区的存储信息进行汇总,得到待执行任务对应的所有子任务缓冲区的 还需的子任务数量,并将待执行任务对应的所有子任务缓冲区的还需的子任务数量上报至 第一服务器节点的任务分解器。
[0163] 其中,在第一服务器节点的任务分配器获取到至少一个任务执行节点中设置的待 执行任务对应的子任务缓冲区的存储信息之后,可以将获取到的所有待执行任务对应的子 任务缓冲区的存储信息进行汇总,获得待执行任务对应的所有子任务缓冲区中还需的子任 务数量。
[0164] 407、第一服务器节点的任务分解器接收任务分配器上报的待执行任务对应的所 有子任务缓冲区的还需的子任务数量,并对待执行任务进行分解,得到与待执行任务对应 的所有子任务缓冲区的还需的子任务相等数量的子任务。
[0165] 其中,在第一服务器节点的任务分配器获取到待执行任务对应的所有子任务缓冲 区中还需的子任务数量之后,将获取到的待执行任务对应的所有子任务缓冲区中还需的子 任务数量上报至第一服务器节点的任务分解器,此时第一服务器节点的任务分解器可以根 据待执行任务对应的所有子任务缓冲区中还需的子任务数量,按照预先配置的分解规则, 对待执行任务进行分解,得到至少一个子任务,并将分解得到的至少一个子任务缓存在子 任务总缓冲区中,该至少一个子任务的数量与待执行任务对应的所有子任务缓冲区的还需 的子任务的数量相等。例如,待执行任务为统计某个计算机内所有目录下的文件的长度,预 先配置的分解规则为输入为:目录,输出为:子目录,这样第一服务器节点的任务分解器可 以根据待执行任务对应的所有子任务缓冲区中还需的子任务数量,将输入的待执行任务: 统计所有目录下的文件的长度,分解为子任务:统计子目录下的文件的长度,其中,分解得 到的所有子任务的数量与待执行任务对应的所有子任务缓冲区中还需的子任务数量相等。
[0166] 需要说明的是,预先配置的分解规则遵循:分解得到的子任务之间相互独立,可以 在分布式系统的不同任务执行节点上并行执行,且当所有子任务执行完成后,待执行任务 执行完成的原则,具体的分解过则可以根据实际应用场景的需求进行设置,本发明实施例 在此不做具体限制。
[0167] 示例性的,当存储信息为子任务缓冲区中还需的子任务数量时,第一服务器节点 的任务分解器可以按照待执行任务对应的所有子任务缓冲区中还需的子任务数量,对待执 行任务进行分解,得到与待执行任务对应的所有子任务缓冲区中还需的子任务数量相同的 子任务,分解得到的所有子任务可以在分布式系统中并行处理。当存储信息为子任务缓冲 区中的未执行的子任务数量时,第一服务器节点的任务分解器可以先根据待执行任务对应 的所有子任务缓冲区能够容纳的子任务的总数量和待执行任务对应的所有子任务缓冲区 中的未执行的子任务数量,计算出待执行任务对应的所有子任务缓冲区中还需的子任务数 量,然后按照待执行任务对应的所有子任务缓冲区中还需的子任务数量,对待执行任务进 行分解。
[0168] 需要说明的是,在本发明实施例中,第一服务器节点的任务分解器在对待执行任 务进行分解时采用的分解规则可以与该待执行任务的任务类型相关,也就是说,可以预先 为不同任务类型设置不同的分解规则,并配置在第一服务器节点上,例如,预先定义固定格 式的子任务分解接口,且不同任务类型的待执行任务对应不同的子任务分解接口,并将这 些子任务分解接口注册到第一服务节点的任务分解器上,第一服务节点的任务分解器在需 要对待执行任务进行分解时,根据待执行任务的任务类型,调用预先注册的对应的子任务 分解接口实现分解。具体的分解规则可以根据实际应用场景的不同进行设置,本发明实施 例在此不做限定。
[0169] 408、针对至少一个任务执行节点中的每个任务执行节点,第一服务器节点的任务 分配器根据该任务执行节点中设置的待执行任务对应的子任务缓冲区的存储信息,向该任 务执行节点的任务接收器下发与子任务缓冲区中还需的子任务相等数量的子任务。
[0170] 其中,在第一服务器节点的任务分配器获取到至少一个任务执行节点中的某个任 务执行节点中设置的待执行任务对应的子任务缓冲区的存储信息之后,第一服务器节点的 任务分配器可以根据该任务执行节点中设置的子任务缓冲区的存储信息,向该任务执行节 点的任务接收器下发与子任务缓冲区中还需的子任务相等数量的子任务。
[0171] 示例性的,当存储信息为子任务缓冲区中还需的子任务数量时,第一服务器节点 的任务分配器可以从子任务总缓冲区中提取与该任务执行节点中设置的子任务缓冲区中 还需的子任务数量相同的子任务下发到任务执行节点的任务接收器。当存储信息为子任务 缓冲区中的未执行的子任务数量时,第一服务器节点的任务分配器可以先根据该任务执行 节点中设置的子任务缓冲区能够容纳的子任务的总数量和该任务执行节点中设置的子任 务缓冲区中的未执行的子任务数量,计算出该任务执行节点中设置的子任务缓冲区中还需 的子任务数量,然后从子任务总缓冲区中提取与该任务执行节点中设置的子任务缓冲区中 还需的子任务数量相同的子任务下发到该任务执行节点的任务接收器。
[0172] 需要说明的是,在本发明实施例中,任务分配器和任务分解器可以成对配置在分 布式系统中的一个服务器节点上,当然,为了提高可靠性,任务分配器和任务分解器也可以 按照双机热备规则成对配置在分布式系统中,还可以按照一主多备规则成对配置在分布式 系统中。当任务分配器和任务分解器按照双机热备规则成对配置在分布式系统中,或按照 一主多备规则成对配置在分布式系统中时,分布式系统中在任意时刻有且只有一对任务分 配器和任务分解器处于活动状态。
[0173] 针对至少一个任务执行节点中的每个任务执行节点,第一服务器节点的任务分配 器向该任务执行节点的任务接收器下发与子任务缓冲区中还需的子任务相等数量的子任 务、即至少一个子任务之后,该任务执行节点的任务调度的具体处理可以参照图7所示的 架构图,具体的执行过程包括以下步骤409-步骤415。
[0174] 需要说明的是,图7所示的架构图中子任务调节阀和负反馈控制器的控制机制, 并不局限于在分布式系统中使用,也可以在单机系统独立使用,以便在进行任务调度时对 本地计算资源占用进行精确控制。当然,除应用于计算资源占用的控制外,还可以应用到过 载保护、网络拥塞等的控制。具体的,令牌桶内的令牌数用于控制发包速率,令牌的流入速 率可以根据网络时延和网络时延偏差进行控制。
[0175] 409、任务执行节点的任务接收器接收第一服务器节点的任务分配器发送的至少 一个子任务,并将至少一个子任务存储在子任务缓冲区中。
[0176] 其中,任务执行节点可以为每个待执行任务维护一个令牌桶,令牌桶内的令牌数 表示当前时刻可以下发到任务执行节点的执行引擎的最大子任务数量。且,任务执行节点 可以为同一类型的待执行任务设置一个子任务缓冲区,该子任务缓冲区中仅存储由该类型 的待执行任务分解得到的子任务,该子任务缓冲区的长度可以是固定的,也可以根据该任 务执行节点的忙闲程度动态变化;或者,任务执行节点也可以仅设置一个子任务缓冲区,用 来存储所有由待执行任务分解得到的子任务,并根据下发到任务执行节点的所有待执行任 务的优先级为不同优先级的待执行任务分配各自的缓冲区配额,该子任务缓冲区的长度可 以是固定的,也可以根据该任务执行节点的忙闲程度动态变化。
[0177] 其中,在任务执行节点的任务接收器接收到第一服务器节点的任务分配器发送的 至少一个子任务,并将至少一个子任务存储在子任务缓冲区中之后,可以执行步骤413步 骤415。由于任务执行节点的子任务调节阀还需采用流入模式,周期性的向与待执行任务对 应的令牌桶内加入令牌,因此,在执行步骤413-步骤415之前,或者,在执行步骤413-步骤 415之后,本发明实施例提供的任务调度方法,还可以包括以下步骤410-步骤412。
[0178] 410、任务执行节点的负反馈控制器获取待执行任务的令牌流入速率变化量。
[0179] 其中,任务执行节点的负反馈控制器获取待执行任务的令牌流入速率变化量具体 的可以是:任务执行节点的负反馈控制器获取待执行任务当前时刻对系统资源的实际占 用量,并根据待执行任务当前时刻对系统资源占用的实际值和预定的系统资源占用的限制 值,确定令牌流入速率变化量。系统资源可以包括以下任意一种或多种的组合:中央处理器 (Central Processing Unit,CPU)资源、内存资源、磁盘资源、IO资源、网络带宽资源。
[0180] 示例性的,任务执行节点的负反馈控制器可以采用PID控制器来确定令牌流入速 率变化量,其中,具体的可以参考如下计算公式:
[0181]
【主权项】
1. 一种任务调度方法,其特征在于,包括: 任务执行节点接收第一服务器节点发送的至少一个子任务,并将所述至少一个子任务 存储在子任务缓冲区中;其中,所述至少一个子任务是由所述第一服务器节点对待执行任 务进行分解得到的; 所述任务执行节点获取与所述待执行任务对应的令牌桶内的令牌数; 所述任务执行节点根据所述令牌桶内的令牌数,对所述子任务缓冲区中存储的与所述 令牌桶内的令牌数相等数量的所述子任务进行处理。
2. 根据权利要求1所述的方法,其特征在于,在所述任务执行节点根据所述令牌桶内 的令牌数,对所述子任务缓冲区中存储的与所述令牌桶内的令牌数相等数量的所述子任务 进行处理之后,还包括: 所述任务执行节点从所述令牌桶中减去与处理的所述子任务相等数量的令牌。
3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述任务执行节点根据所述待执行任务的当前时刻的令牌流入速率,向所述令牌桶内 加入令牌。
4. 根据权利要求1或2所述的方法,其特征在于,在所述任务执行节点根据所述令牌桶 内的令牌数,对所述子任务缓冲区中存储的与所述令牌桶内的令牌数相等数量的所述子任 务进行处理之后,还包括: 所述任务执行节点向所述令牌桶内加入与处理完成的所述子任务相等数量的令牌。
5. 根据权利要求3所述的方法,其特征在于,在所述任务执行节点根据所述待执行任 务的当前时刻的令牌流入速率,向所述令牌桶中加入令牌之前,还包括: 所述任务执行节点获取所述待执行任务的令牌流入速率变化量; 所述任务执行节点根据所述待执行任务的当前时刻的前一时刻的令牌流入速率和所 述令牌流入速率变化量获取所述当前时刻的令牌流入速率。
6. 根据权利要求5所述的方法,其特征在于,所述任务执行节点获取所述待执行任务 的令牌流入速率变化量,包括: 所述任务执行节点获取所述待执行任务当前时刻对系统资源的实际占用量; 所述任务执行节点根据所述待执行任务当前时刻对系统资源占用的实际值和预定的 系统资源占用的限制值,确定所述令牌流入速率变化量。
7
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1