[发明专利]一种基于有向无环的分布式任务调度方法有效
申请号: | 202310110455.8 | 申请日: | 2023-02-13 |
公开(公告)号: | CN116302396B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 铁锦程;严立国 | 申请(专利权)人: | 上海浦东发展银行股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/901 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 蔡彭君 |
地址: | 200002 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分布式 任务 调度 方法 | ||
本发明涉及一种基于有向无环的分布式任务调度方法,方法包括以下步骤:S1、获取第一有向无环图,拆分为第二有向无环图,分配给不同的抽象调度池;S2、在调度节点之间选举出领导节点;S3、调度节点向领导节点注册自身信息;S4、将抽象调度池平均分配给注册的调度节点;S5、领导节点将未存活的抽象调度池对应的第二有向无环图重新分配;S6、向调度节点发送心跳包维持自身的注册状态;S7、将与其对应的第二有向无环图解析为任务,将任务分配给注册的执行节点;S8、注册的执行节点执行分配的任务。与现有技术相比,本发明具有任务的处理速度快等优点。
技术领域
本发明涉及大数据中的任务调度领域,尤其是涉及一种基于有向无环的分布式任务调度方法。
背景技术
目前,在大数据以及需要定时跑批的工作流(workflow)场景时,可通过DAG(有向无环图)将不同任务组合,串行或并行执行,现有方案调度层与执行层互相耦合,被封装在一个进程中,扩展性相对较差,方案调度层通过有向无环图解析依靠单一线程,且只拥有一个抽象调度池(pool),性能瓶颈明显,无法显著提高任务的处理速度。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供的一种提高任务的处理速度上限的基于有向无环的分布式任务调度方法。
本发明的目的可以通过以下技术方案来实现:
一种基于有向无环的分布式任务调度方法,本方法在调度层和执行层这2个独立进程中执行,方法包括以下步骤:
S1、获取第一有向无环图,将第一有向无环图拆分为不同的多个第二有向无环图,将第二有向无环图绑定在不同的抽象调度池上,每个抽象调度池占独立的线程;
S2、拆分后,在调度节点之间选举出一个调度节点作为领导节点,除去领导节点之外的调度节点为跟随节点,领导节点维护抽象调度池和调度节点的映射关系,所述调度节点在调度层中;
S3、调度节点向领导节点注册自身信息;
S4、注册完成后,领导节点扫描抽象调度池的元信息,基于抽象调度池的元信息和S2的映射关系将抽象调度池平均分配给注册的调度节点,所述领导节点设置自动分配机制,自动分配机制中,抽象调度池进行自动找平;
S5、注册的调度节点接收分配的抽象调度池,并将抽象调度池的执行信息反馈给领导节点,领导节点基于反馈的信息判断抽象调度池是否存活,领导节点将未存活的抽象调度池绑定的第二有向无环图重新分配;
S6、执行节点向调度节点注册自身信息,并向调度节点发送心跳包维持自身的注册状态;
S7、调度节点对应的抽象调度池将与其绑定的第二有向无环图解析为任务,将任务分配给执行层中注册的执行节点;
S8、注册的执行节点执行分配的任务;
上述步骤中,S1~S7在调度层中执行,S8在执行层中执行。
进一步地,选举出领导节点具体为:在主线程中获取数据库中的乐观锁,通过乐观锁确定领导节点。
进一步地,自动分配机制具体为:
领导节点将抽象调度池平均分配给注册的调度节点时,
当新的调度节点上线或原来的调度节点下线时,触发自动分配机制,重新平衡各节点的负载;
当领导节点下线时,该领导节点对应的乐观锁被跟随节点中的一个节点获取,该跟随节点成为新的领导节点,新的领导节点根据下线的领导节点最后一次扫描的抽象调度池的元信息,确定抽象调度池和调度节点的映射关系,接替下线的领导节点的任务。
进一步地,抽象调度池进行自动找平的过程具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海浦东发展银行股份有限公司,未经上海浦东发展银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310110455.8/2.html,转载请声明来源钻瓜专利网。