一种在多节点网络中执行作业任务的方法

文档序号:8248166阅读:626来源:国知局
一种在多节点网络中执行作业任务的方法
【专利说明】一种在多节点网络中执行作业任务的方法
[0001]
技术领域
[0002]本发明涉及计算机技术,特别涉及一种在多节点网络中执行作业任务的方法。
【背景技术】
[0003]现有计算机系统中,多节点网络中所有节点彼此相互连接,为了缓解单个节点上存储元数据的负载负担,将各个节点上分别存有一个或多个元数据,因此,当某一节点执行作业任务时,经常需要访问其他节点以获得所需的一个或多个元数据。然而现有技术中当某一节点出现故障时会出现其上存储的元数据不能被继续访问的问题。另一方面,当某一节点需要完成作业时,如果所述作业任务过大会造成某一节点的负载过重,导致不能及时完成。

【发明内容】

[0004]为解决上述现有技术所存在的问题,本发明引入独创的多级备份技术以及全新的负载均衡技术,提出了一种在多节点网络中执行作业任务的方法,所述多节点网络中包括彼此相互连接的多个网络节点,按照网段将所述多个网络节点划分到多个节点分组,每个节点分组中包括多个服务节点和多个成员节点;其中每一个成员节点中存储有多个元数据,每个元数据冗余存储在同一节点分组中的多个成员节点中;每一个服务节点中存储有所述多个元数据的存储位置的存储信息表,并且所述多个服务节点互为备份并同步更新,所述方法包括:所述多节点网络中的当前节点接收作业任务;所述当前节点将所述作业任务分解为多个子作业任务;对于每一个子作业任务,所述当前节点执行以下步骤:确定所述当前子作业任务所需要访问的一个或多个元数据;请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息,并接收所述具有最小负载的服务节点反馈的所述一个或多个元数据的存储位置信息;如果未能获得所有元数据的存储位置信息,则请求其他节点分组的服务节点提供未能获得的存储位置信息,直至获得所有元数据的存储位置信息;如果所述一个或多个元数据均来自同一存储位置,则将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务,否则所述当前节点根据所获得的所有元数据的存储位置信息获取所有需要访问的元数据并完成所述当前子作业任务;所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果,并通过用户交互界面进行显示,并通过用户交互界面进行显示。
[0005]优选地,所述每个元数据冗余存储在同一节点分组中的多个成员节点中包括:实时记录所述每个元数据的被访问日志,所述访问日志至少包括所述每个元数据的标识符和被访问的时间信息;周期性地计算所述每个元数据的单位时间访问量以及同一节点分组内所有元数据的单位时间平均访问量;将单位时间访问量大于单位时间平均访问量的元数据冗余存储在同一节点分组中的M个成员节点中,将单位时间访问量小于或等于单位时间平均访问量的元数据冗余存储在同一节点分组中的N个成员节点中,其中M>N。
[0006]优选地,所述请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息包括:将所述一个或多个元数据的标识符打包并发送给与所述当前节点属于同一节点分组的具有最小负载的服务节点;所述与所述当前节点属于同一节点分组的具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。
[0007]优选地于,所述请求其他节点分组的服务节点提供未能获得的存储位置信息包括:将未能获得存储位置信息的一个或多个元数据的标识符打包并发送给与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点;所述与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。
[0008]优选地,每个节点分组中的服务节点的数量为3。
[0009]优选地,M为3,N为2。
[0010]优选地,在步骤所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果之前还包括:接收其他节点发送的子作业任务的执行结果。
[0011]优选地,在执行将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务期间,如果发现所述同一存储位置所在的节点负载超过预先设置的阈值,则将所有需要访问的元数据以及所述当前子作业任务发送给所述当前节点,并由所述当前节点完成所述当前子作业任务。
[0012]优选地,所述当前节点将所有需要所述当前节点完成的子作业任务暂存在队列中,并根据所述当前节点依次执行所述队列中的子作业任务;其中,所述当前节点根据负载情况确定并发执行所述队列中的子作业任务的数量。
[0013]优选地,如果所述当前节点中的队列中的子作业任务的数量超过预先设置的数量,则将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行。
[0014]优选地,所述将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行包括:将所述后续需要加入队列的子作业任务及相关元数据打包成待发送数据,将所述待发送数据发送给所述当前节点在同一节点分组中的负载最小的其他成员节点。
[0015]本发明相比现有技术,具有以下优点:
通过在服务节点上保存存储信息表并将多个元数据分别存储在多个成员节点上,使得避免单个成员节点上存储元数据的负担。
[0016]通过设置多个服务节点,从而实现在多个服务节点上备份保存存储信息表,使得避免因服务节点故障造成的无法读取存储信息表的问题。
[0017]通过根据元数据被访问的热度分别设置冗余备份的数量,使得尽量减少节点冗余备份的负担。
[0018]通过将作业任务分解并将子作业任务尽可能分配到其它节点执行,使得减少单个节点的负载负担。
【附图说明】
[0019]图1是根据本发明实施例的动态生成提醒信息的方法的流程图。
[0020]图2是根据本发明实施例的执行每一个子作业任务的流程图。
【具体实施方式】
[0021]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0022]根据本发明的实施例,所述多节点网络中包括彼此相互连接的多个网络节点,按照网段将所述多个网络节点划分到多个节点分组,每个节点分组中包括多个服务节点和多个成员节点;其中每一个成员节点中存储有多个元数据,每个元数据冗余存储在同一节点分组中的多个成员节点中;每一个服务节点中存储有所述多个元数据的存储位置的存储信息表,并且所述多个服务节点互为备份并同步更新。例如,每个节点分组中的服务节点的数量为3。每个节点分组中的成员节点的数量根据网段容量及网段内实际节点数量确定。
[0023]图1示出根据本发明实施例的在多节点网络中执行作业任务的方法的流程图。在步骤I中,所述多节点网络中的当前节点接收作业任务。所述当前节点是所述多节点网络中的任意一个成员节点。
[0024]在步骤2中、所述当前节点将所述作业任务分解为多个子作业任务。所述多个子作业任务可分别进行执行,包括顺序执行和并行执行。
[0025]在步骤3中、执行每一个子作业任务。如图2所示,对于每一个子作业任务,所述当前节点执行以下步骤:在步骤3.1中,确定所述当前子作业任务所需要访问的一个或多个元数据。在步骤3.2中,请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息,并接收所述具有最小负载的服务节点反馈的所述一个或多个元数据的存储位置信息,被请求的服务节点在其上保存的存储信息表中查找所述一个或多个元数据的存储位置信息,并将能够查询到的存储位置信息打包发送给当前节点。如果未能获得所有元数据的存储位置信息,则请求其他节点分组的服务节点提供未能获得的存储位置信息,直至获得所有元数据的存储位置信息。也就是说如果被请求的服务节点不能提供所有元数据的存储位置信息,则需要向其他节点分组中的服务节点请求未能获得的元数据的存储位置信息。在步骤3.3中,如果所述一个或多个元数据均来自同一存储位置,则将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务,否则所述当前节点根据所获得的所有元数据的存储位置信息获取所有需要访问的元数据并完成所述当前子作业任务;也就是说,如果当前节点中某一子任务作业所需的所有元数据均来自与该某一子作业任务处于同一节点分组的另一成员节点,则有所述另一成员节点完成所述子作业任务,否则由当前节点完成所述子作业任务。
[0026]在步骤4中、所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果,并通过用户交互界面进行显示
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1