[发明专利]一种任务分配方法及系统有效
申请号: | 201210055379.7 | 申请日: | 2012-03-05 |
公开(公告)号: | CN103294531B | 公开(公告)日: | 2017-03-01 |
发明(设计)人: | 张轩丞 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 分配 方法 系统 | ||
技术领域
本申请涉及数据处理技术,特别是涉及一种任务分配方法及系统。
背景技术
在分布式服务器集群(如MySQL服务器集群)中,统计结果数据通常会在分布式计算平台(例如Hadoop)上被计算好后,会批量地将所述计算好的数据导入各个MySQL服务器中,然后再进行后续的处理。其中,所述导入过程是采用带有优先级的工作队列实现的。出于容灾考虑,这些MySQL服务器分布在不同的机房,若将所述计算后的数据作为任务,则处理任务的各个worker也分布在不同的机房。其中,所述worker为处理任务的进程或线程。
通常采用预先分配的方式进行任务分配,即一个任务在进入队列时就为其分配了一个worker,表示由这个worker负责该任务的调度和处理。但这种分配方法存在两个严重的问题:
一是各个worker处理的速度可能是不同的,若队列中要处理的任务顺序是A、B和C,他们分别是worker1、worker2和worker3的任务。由于worker1处理速度比较慢正在处理任务,则A暂时不能被处理,若此时worker2和worker3是空闲的,也同样不能处理任务B和C,这导致整体队列任务的处理时间比较长,处理效率较低,并且浪费资源。
二是在一些异常情况下,如果处理任务的某个worker进程退出了,或worker本身宕机了,则会导致分配在这个worker上的所有任务在一段时间内都无法被及时处理,即任务“饿死”。此时往往要配合专门的监控和再分配策略来保证工作队列的正常运行。
综上所述,现有技术中的任务分配方法任务的处理时间比较长,处理效率较低,并且浪费资源,甚至可能导致任务“饿死”的问题。
发明内容
本申请提供一种任务分配方法及系统,以解决现有技术中的任务分配方法任务的处理时间比较长,处理效率较低,并且浪费资源,甚至可能导致任务“饿死”的问题。
为了解决上述问题,本申请公开了一种任务分配方法,包括:
任务进入工作队列,并分配所述任务的目标服务器;
当任务从工作队列中出队时,若目标服务器上存在空闲worker,则由所述空闲worker抢占并处理所述任务;
若目标服务器上不存在空闲worker,则在所有服务器中查找与所述任务的目标服务器距离最近的空闲worker,由所述空闲worker抢占并处理所述任务,其中,所述worker为处理任务的进程或处理任务的线程。
相应的,本申请还公开了一种任务分配系统,包括:
分配服务器模块,用于任务进入工作队列,并分配所述任务的目标服务器;
第一抢占模块,用于当任务从工作队列中出队时,若目标服务器上存在空闲worker,则由所述空闲worker抢占并处理所述任务;
第二抢占模块,用于若目标服务器上不存在空闲worker,则在所有服务器中查找与所述任务的目标服务器距离最近的空闲worker,由所述空闲worker抢占并处理所述任务,其中,所述worker为处理任务的进程或处理任务的线程。
与现有技术相比,本申请包括以下优点:
首先,本申请采用预先分配和worker抢占相结合的方式进行任务的分配处理,在任务进入工作队列时,会分配所述任务目标处理位置,即当任务从工作队列中出队时,若目标处理位置上存在空闲worker,则由该空闲worker抢占并处理所述任务。否则,由空闲worker进行抢占来处理任务,即查找各个机房中处理位置距离所述任务的目标处理位置最近的空闲worker,由该空闲worker抢占并处理所述任务,其中,所述worker为处理任务的进程或处理任务的线程。这使得所有任务都会有处理的worker,从而避免任务了“饿死”情况的出现。并且任务从任务队列中出队后就有空闲worker进行处理,有效的缩短了处理时间,提高了处理效率,同时根据所述距离选取空闲worker可以减少资源的浪费。
其次,本申请进一步可以通过计算各个机房内空闲worker所在的服务器标识与所述任务的目标服务器标识之间的距离,将所有空闲worker按照所述距离由小到大的顺序进行排列,距离最小的worker抢占到所述任务并进行处理。此时可以最大化的减少任务传输对资源的浪费,提高资源的利用率,进一步提高任务的处理效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210055379.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:嵌入式系统及其中断处理方法与装置
- 下一篇:终端和进程控制方法