公开/公告号CN104580381A
专利类型发明专利
公开/公告日2015-04-29
原文格式PDF
申请/专利权人 北京可思云海科技有限公司;
申请/专利号CN201410780849.5
发明设计人 徐礼正;
申请日2014-12-17
分类号H04L29/08(20060101);
代理机构
代理人
地址 100020 北京市朝阳区吉庆里14号佳汇国际中心A座1506
入库时间 2023-12-18 08:35:15
法律状态公告日
法律状态信息
法律状态
2018-02-06
授权
授权
2018-01-30
著录事项变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20141217
著录事项变更
2018-01-30
专利申请权的转移 IPC(主分类):H04L29/08 登记生效日:20180111 变更前: 变更后: 申请日:20141217
专利申请权、专利权的转移
2015-10-14
专利申请权的转移 IPC(主分类):H04L29/08 变更前: 变更后: 登记生效日:20150917 申请日:20141217
专利申请权、专利权的转移
2015-05-27
实质审查的生效 IPC(主分类):H04L29/08 申请日:20141217
实质审查的生效
2015-04-29
公开
公开
查看全部
技术领域
本发明涉及计算机技术,特别涉及一种在多节点网络中执行作业任务的方法。
背景技术
现有计算机系统中,多节点网络中所有节点彼此相互连接,为了缓解单个节点上存储元数据的负载负担,将各个节点上分别存有一个或多个元数据,因此,当某一节点执行作业任务时,经常需要访问其他节点以获得所需的一个或多个元数据。然而现有技术中当某一节点出现故障时会出现其上存储的元数据不能被继续访问的问题。另一方面,当某一节点需要完成作业时,如果所述作业任务过大会造成某一节点的负载过重,导致不能及时完成。
发明内容
为解决上述现有技术所存在的问题,本发明引入独创的多级备份技术以及全新的负载均衡技术,提出了一种在多节点网络中执行作业任务的方法,所述多节点网络中包括彼此相互连接的多个网络节点,按照网段将所述多个网络节点划分到多个节点分组,每个节点分组中包括多个服务节点和多个成员节点;其中每一个成员节点中存储有多个元数据,每个元数据冗余存储在同一节点分组中的多个成员节点中;每一个服务节点中存储有所述多个元数据的存储位置的存储信息表,并且所述多个服务节点互为备份并同步更新,所述方法包括:所述多节点网络中的当前节点接收作业任务;所述当前节点将所述作业任务分解为多个子作业任务;对于每一个子作业任务,所述当前节点执行以下步骤:确定所述当前子作业任务所需要访问的一个或多个元数据;请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息,并接收所述具有最小负载的服务节点反馈的所述一个或多个元数据的存储位置信息;如果未能获得所有元数据的存储位置信息,则请求其他节点分组的服务节点提供未能获得的存储位置信息,直至获得所有元数据的存储位置信息;如果所述一个或多个元数据均来自同一存储位置,则将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务,否则所述当前节点根据所获得的所有元数据的存储位置信息获取所有需要访问的元数据并完成所述当前子作业任务;所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果,并通过用户交互界面进行显示,并通过用户交互界面进行显示。
优选地,所述每个元数据冗余存储在同一节点分组中的多个成员节点中包括:实时记录所述每个元数据的被访问日志,所述访问日志至少包括所述每个元数据的标识符和被访问的时间信息;周期性地计算所述每个元数据的单位时间访问量以及同一节点分组内所有元数据的单位时间平均访问量;将单位时间访问量大于单位时间平均访问量的元数据冗余存储在同一节点分组中的M个成员节点中,将单位时间访问量小于或等于单位时间平均访问量的元数据冗余存储在同一节点分组中的N个成员节点中,其中M>N。
优选地,所述请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息包括:将所述一个或多个元数据的标识符打包并发送给与所述当前节点属于同一节点分组的具有最小负载的服务节点;所述与所述当前节点属于同一节点分组的具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。
优选地于,所述请求其他节点分组的服务节点提供未能获得的存储位置信息包括:将未能获得存储位置信息的一个或多个元数据的标识符打包并发送给与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点;所述与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。
优选地,每个节点分组中的服务节点的数量为3。
优选地,M为3,N为2。
优选地,在步骤所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果之前还包括:接收其他节点发送的子作业任务的执行结果。
优选地,在执行将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务期间,如果发现所述同一存储位置所在的节点负载超过预先设置的阈值,则将所有需要访问的元数据以及所述当前子作业任务发送给所述当前节点,并由所述当前节点完成所述当前子作业任务。
优选地,所述当前节点将所有需要所述当前节点完成的子作业任务暂存在队列中,并根据所述当前节点依次执行所述队列中的子作业任务;其中,所述当前节点根据负载情况确定并发执行所述队列中的子作业任务的数量。
优选地,如果所述当前节点中的队列中的子作业任务的数量超过预先设置的数量,则将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行。
优选地,所述将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行包括:将所述后续需要加入队列的子作业任务及相关元数据打包成待发送数据,将所述待发送数据发送给所述当前节点在同一节点分组中的负载最小的其他成员节点。
本发明相比现有技术,具有以下优点:
通过在服务节点上保存存储信息表并将多个元数据分别存储在多个成员节点上,使得避免单个成员节点上存储元数据的负担。
通过设置多个服务节点,从而实现在多个服务节点上备份保存存储信息表,使得避免因服务节点故障造成的无法读取存储信息表的问题。
通过根据元数据被访问的热度分别设置冗余备份的数量,使得尽量减少节点冗余备份的负担。
通过将作业任务分解并将子作业任务尽可能分配到其它节点执行,使得减少单个节点的负载负担。
附图说明
图1是根据本发明实施例的动态生成提醒信息的方法的流程图。
图2是根据本发明实施例的执行每一个子作业任务的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
根据本发明的实施例,所述多节点网络中包括彼此相互连接的多个网络节点,按照网段将所述多个网络节点划分到多个节点分组,每个节点分组中包括多个服务节点和多个成员节点;其中每一个成员节点中存储有多个元数据,每个元数据冗余存储在同一节点分组中的多个成员节点中;每一个服务节点中存储有所述多个元数据的存储位置的存储信息表,并且所述多个服务节点互为备份并同步更新。例如,每个节点分组中的服务节点的数量为3。每个节点分组中的成员节点的数量根据网段容量及网段内实际节点数量确定。
图1示出根据本发明实施例的在多节点网络中执行作业任务的方法的流程图。在步骤1中,所述多节点网络中的当前节点接收作业任务。所述当前节点是所述多节点网络中的任意一个成员节点。
在步骤2中、所述当前节点将所述作业任务分解为多个子作业任务。所述多个子作业任务可分别进行执行,包括顺序执行和并行执行。
在步骤3中、执行每一个子作业任务。如图2所示,对于每一个子作业任务,所述当前节点执行以下步骤:在步骤3.1中,确定所述当前子作业任务所需要访问的一个或多个元数据。在步骤3.2中,请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息,并接收所述具有最小负载的服务节点反馈的所述一个或多个元数据的存储位置信息,被请求的服务节点在其上保存的存储信息表中查找所述一个或多个元数据的存储位置信息,并将能够查询到的存储位置信息打包发送给当前节点。如果未能获得所有元数据的存储位置信息,则请求其他节点分组的服务节点提供未能获得的存储位置信息,直至获得所有元数据的存储位置信息。也就是说如果被请求的服务节点不能提供所有元数据的存储位置信息,则需要向其他节点分组中的服务节点请求未能获得的元数据的存储位置信息。在步骤3.3中,如果所述一个或多个元数据均来自同一存储位置,则将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务,否则所述当前节点根据所获得的所有元数据的存储位置信息获取所有需要访问的元数据并完成所述当前子作业任务;也就是说,如果当前节点中某一子任务作业所需的所有元数据均来自与该某一子作业任务处于同一节点分组的另一成员节点,则有所述另一成员节点完成所述子作业任务,否则由当前节点完成所述子作业任务。
在步骤4中、所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果,并通过用户交互界面进行显示,并通过用户交互界面进行显示。在本发明实施例中,在步骤所述当前节点汇总所述多个子作业任务的执行结果并得到总体作业任务结果之前还包括:接收其他节点发送的子作业任务的执行结果。
在本发明实施例中,所述每个元数据冗余存储在同一节点分组中的多个成员节点中包括:实时记录所述每个元数据的被访问日志,所述访问日志至少包括所述每个元数据的标识符和被访问的时间信息。周期性地计算所述每个元数据的单位时间访问量以及同一节点分组内所有元数据的单位时间平均访问量。将单位时间访问量大于单位时间平均访问量的元数据冗余存储在同一节点分组中的M个成员节点中,将单位时间访问量小于或等于单位时间平均访问量的元数据冗余存储在同一节点分组中的N个成员节点中,其中M>N。例如,M为3,N为2。
在本发明实施例中,所述请求与所述当前节点属于同一节点分组的具有最小负载的服务节点提供所述一个或多个元数据的存储位置信息包括:将所述一个或多个元数据的标识符打包并发送给与所述当前节点属于同一节点分组的具有最小负载的服务节点。所述与所述当前节点属于同一节点分组的具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。其中,当与所述当前节点属于同一节点分组的具有最小负载的服务节点接收到所述打包的标示符后,首先进行解包操作,然后再查询存储信息表。
在本发明实施例中,所述请求其他节点分组的服务节点提供未能获得的存储位置信息包括:将未能获得存储位置信息的一个或多个元数据的标识符打包并发送给与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点。所述与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点查询存储信息表,并将匹配成功的一个或多个存储位置信息打包并发送给所述当前节点。其中,与所述当前节点所在节点分组网段距离最近的节点分组中具有最小负载的服务节点接收到打包后的标示符后,首先进行解包操作,然后再查询存储信息表。其中,所述当前节点接收到打包后的存储位置信息后,首先进行解包操作。
在本发明实施例中,在执行将所述当前子作业任务发送至所述同一存储位置所在的节点并由所述同一存储位置所在的节点完成所述当前子作业任务期间,如果发现所述同一存储位置所在的节点负载超过预先设置的阈值,则将所有需要访问的元数据以及所述当前子作业任务发送给所述当前节点,并由所述当前节点完成所述当前子作业任务。所述当前节点将所有需要所述当前节点完成的子作业任务暂存在队列中,并根据所述当前节点依次执行所述队列中的子作业任务;其中,所述当前节点根据负载情况确定并发执行所述队列中的子作业任务的数量。如果所述当前节点中的队列中的子作业任务的数量超过预先设置的数量,则将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行。所述将后续需要加入队列的子作业任务及相关元数据发送给与所述当前节点在同一节点分组中的其他成员节点执行包括:将所述后续需要加入队列的子作业任务及相关元数据打包成待发送数据,将所述待发送数据发送给所述当前节点在同一节点分组中的负载最小的其他成员节点。
综上所述,本发明提出的在多节点网络中执行作业任务的方法,避免单个成员节点上存储元数据的负担;避免因服务节点故障造成的无法读取存储信息表的问题;减少节点冗余备份的负担;并减少单个节点的负载负担。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
机译: 包括方法的设备,多任务处理方法,执行用于共享用于将资源分配给任务的电路的方法的计算机处理器,用于执行指令的多个处理器的资源,多任务处理器,计算机指令,包括计算机处理器的网络设备和方法用于执行方法的步骤包括执行给定组的几种方法的任务的步骤,包括处理网络数据的步骤,软件执行多个任务
机译: 包括计算机处理器的设备,该方法包括执行多个预定组的任务的步骤,该方法包括处理网络数据的步骤,包括一种方法的网络设备和用于执行多个软件任务的计算机处理器
机译: 建立区块链网络中的节点之间的协议的方法,使用多节点分布式网络配置的区块链系统,以及利用区块链系统中的处理器建立要执行的节点之间的协议的方法