CN113986497B - 基于多租户技术的队列调度方法、装置及*** - Google Patents
基于多租户技术的队列调度方法、装置及*** Download PDFInfo
- Publication number
- CN113986497B CN113986497B CN202111255682.7A CN202111255682A CN113986497B CN 113986497 B CN113986497 B CN 113986497B CN 202111255682 A CN202111255682 A CN 202111255682A CN 113986497 B CN113986497 B CN 113986497B
- Authority
- CN
- China
- Prior art keywords
- task
- task queue
- queue
- processed
- tenant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开提供了基于多租户技术的队列调度方法、装置及***,涉及计算机技术中的大数据技术领域,该方法应用于多租户***中的调度设备,多租户***包括调度设备和至少一个计算机集群,方法包括:响应于目标租户发起的任务调取请求,任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与待处理任务对应的任务队列,任务队列列表为依据多租户***下每一任务队列的队列状态信息所确定的,向与目标租户对应的计算机集群发送任务处理请求,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理,提高了队列调度的合理性和充分性。
Description
技术领域
本公开涉及计算机技术中的大数据技术领域,尤其涉及一种基于多租户技术的队列调度方法、装置及***。
背景技术
多租户技术可以为多个租户提供服务,多租户技术中涉及了计算机集群和调度设备。在多租户技术中,为每一租户预先配置了多个任务队列,为每一任务队列提供了资源;从而,调度设备可以为租户所发起的处理任务,直接调取任务队列,基于该任务队列的资源,对租户所发起的处理任务进行处理。
在现有技术中,因为预先为每一租户配置了多个任务队列,进而调度设备在接收到租户发起的处理任务时,可以随机的将租户发起的处理任务调度至该租户的某一任务队列中;然后,计算机集群可以执行该任务队列,进而对对租户所发起的处理任务进行处理。
然而,采用上述随机调度方法,某些租户的队列的负载较高,其他租户的队列比较空闲,使得队列不能充分利用,从而导致队列调度的产出效率偏低,并且导致待处理的任务不能被及时执行。
发明内容
本公开提供了一种用于提高资源利用率的基于多租户技术的队列调度方法、装置及***。
根据本公开的第一方面,提供了一种基于多租户技术的队列调度方法,所述方法应用于多租户***中的调度设备,所述多租户***包括所述调度设备和至少一个计算机集群,所述方法包括:
响应于目标租户发起的任务调取请求,其中,所述任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与所述待处理任务对应的任务队列;其中,所述任务队列列表中包括至少一个任务队列,所述任务队列列表为依据所述多租户***下每一任务队列的队列状态信息所确定的;
向与所述目标租户对应的计算机集群发送任务处理请求,其中,所述任务处理请求用于指示与所述待处理任务对应的任务队列,且所述任务处理请求用于指示采用与所述待处理任务对应的任务队列的资源对所述待处理任务进行处理。
根据本公开的第二方面,提供了一种基于多租户技术的队列调度装置,所述装置应用于多租户***中的调度设备,所述多租户***包括所述调度设备和至少一个计算机集群,所述装置包括:
第一确定单元,用于响应于目标租户发起的任务调取请求,其中,所述任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与所述待处理任务对应的任务队列;其中,所述任务队列列表中包括至少一个任务队列,所述任务队列列表为依据所述多租户***下每一任务队列的队列状态信息所确定的;
第二发送单元,用于向与所述目标租户对应的计算机集群发送任务处理请求,其中,所述任务处理请求用于指示与所述待处理任务对应的任务队列,且所述任务处理请求用于指示采用与所述待处理任务对应的任务队列的资源对所述待处理任务进行处理。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
根据本公开的第六方面,提供了一种调度设备,包括如第二方面所述的装置。
根据本公开的第七方面,提供了一种基于多租户技术的多租户***,包括:调度设备和至少一个计算机集群,如第二方面所述的装置应用于所述调度设备。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是可以实现本公开实施例的基于多租户技术的队列调度方法的场景图;
图2是根据本公开第一实施例的示意图;
图3是根据本公开第二实施例的示意图;
图4是根据本公开第三实施例的示意图;
图5是根据本公开第四实施例的示意图;
图6是根据本公开第五实施例的示意图;
图7是根据本公开实施例的调度设备的示意图;
图8是用来实现本公开实施例的基于多租户技术的队列调度方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
多租户技术中涉及了计算机集群和调度设备,通过结合计算机集群和调度设备,以便为各个租户提供服务,如为租户提供查询服务,具体可以为查询订单数据的服务等。
其中,计算机集群可以为分布在不同地域的计算机集群,如分布在不同城市的计算机集群,或者,分布在同一城市不同片区的计算机集群等。
基于多租户技术的计算机集群和调度设备可以称为多租户***110。如图1所示,多租户***110中包括计算机集群1直至计算机集群N,每一计算机集群均与调度设备120建立通信。其中,N为大于1的正整数。
如图1所示,若租户需要读取数据平台130中存储的数据时,可以基于租户的用户设备140与多租户***110之间的交互、以及多租户***110与数据平台130之间的交互实现。
例如,租户通过用户设备140向多租户***110发送任务调度请求,以通过该任务调度请求指示读取数据平台130中存储的数据。
相应的,多租户***110中的调度设备120接收由用户设备140发送的调度任务请求,并确定与待处理任务对应的任务队列,且向与租户对应的计算机集群发送任务处理请求,如向计算机集群1发送任务处理请求,以由计算机集群1从数据平台130中获取与调度任务请求对应的存储数据,以便由多租户***110向用户设备140反馈获取到的存储数据。
应该理解的是,上述应用场景只是用于示范性的说明,本实施例的基于多租户技术的队列调度方法可能适用的应用场景,而不能理解为对应用场景的限定。
例如,在另一些示例中,数据平台可以为多租户***中的组成部分,如数据平台可以为多租户***中的存储单元。
在多租户技术中,多租户***为每一租户预先配置了多个任务队列,且任务队列的数量可以基于租户的请求、以及计算机集群的资源进行确定。
在相关技术中,然而,随着租户的增加,而计算机集群的资源相对固定的情况下,如何提高多租户***的任务产出效率成了亟待解决的问题。
在现有技术中,基于多租户技术的队列调度方法通过为随机调度方法,包括:调度设备将租户基于用户设备发起的任务处理请求随机调度至该租户的某一任务队列,由相应的计算机集群执行任务处理请求对应的操作,从而实现租户获取与任务处理请求对应的数据。
然而,采用上述随机调度方法,通常会产生部分租户的任务队列的负载较高,而其他部分租户的任务队列比较空闲,使得任务队列不能充分利用,从而导致任务调度的产出效率偏低,并且导致待处理的任务不能被及时执行。
为了避免上述技术问题中的至少一种,本公开发明人提出了本公开的发明构思:结合发起待处理任务的目标租户的任务队列的队列状态信息、以及其他租户的任务队列的队列状态信息确定任务队列列表,以基于该任务队列列表确定与待处理任务对应的任务队列,并基于相应的计算机集群基于与确定出的任务队列的资源对待处理任务进行处理。
基于上述发明构思,本公开提供一种基于多租户技术的队列调度方法、装置及***,应用于计算机技术中的大数据技术领域,以达到提高资源利用率。
图2是根据本公开第一实施例的示意图,如图1所示,本公开实施例提供的基于多租户技术的队列调度方法,包括:
S201:响应于目标租户发起的任务调取请求,其中,任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与待处理任务对应的任务队列。其中,任务队列列表中包括至少一个任务队列,任务队列列表为依据多租户***下每一任务队列的队列状态信息所确定的。
其中,本公开实施例的基于多租户技术的队列调度方法应用于多租户***中的调度设备,多租户***包括所述调度设备和至少一个计算机集群。调度。调度设备可以为处理器,也可以为芯片,本实施例不做限定。
结合如图1所示的应用场景,基于多租户技术的多租户***可以包括调度设备和计算机集群,且计算机集群的数量可以为多个(如图1中所示的N个)。
任务队列中可能包括需要处理的任务,也可能为空任务队列,即没有需要处理的任务。任务队列的队列状态信息是指,任务队列处理任务相关的信息,如任务队列需要处理的任务的负载,又如任务队列的挂载(quota)信息,又如任务队列的优先级,又如任务队列的处理器(CPU)使用率等,此处不再一一列举。也就是说,根据某任务队列的队列状态信息,可以确定该任务队列需要处理的任务的相关情况(如资源的消耗等),也可以确定该任务队列可以再处理任务的相关情况(如可以处理的任务的数量等)。
一个示例中,调度设备可以在接收到目标租户发起的任务调度请求之后,根据多租户***下的每一任务队列的队列状态信息构建任务队列列表。
另一个示例中,调度设备也可以基于预设时间间隔,根据多租户***下的每一任务队列的队列状态信息构建任务队列列表。
再一个示例中,调度设备也可以实时根据多租户***下的每一任务队列的队列状态信息构建任务队列列表。
还一个示例中,调度设备在多租户***初始化之后,根据多租户***下的每一任务队列的队列状态信息构建任务队列列表,而后基于时间间隔或者实时更新该任务队列列表,更新时,可以基于队列状态信息发生了变化的任务队列实现,即若某任务队列的队列状态信息发生了变化,则结合变化后的队列状态信息更新任务队列列表。
值得说明的是,在本实施例中,任务队列列表的确定既结合了目标租户的任务队列的队列状态信息,也结合了其他租户的任务队列的队列状态信息,以使得对所有租户的任务队列进行综合考虑,以使得各任务队列被充分利用的技术效果。
S202:向与目标租户对应的计算机集群发送任务处理请求。其中,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理。
其中,计算机集群的数量可能为多个,且多个计算机集群可能分布于不同的城市或地区,本实施例中所称与目标租户对应的计算机集群,可以是由调度设备基于各计算机集群的部署位置、各计算机集群的负载等确定的,当然,也可以由调度设备预先为多租户***下的每一租户分配计算机集群,甚至计算机集群中的计算机等,本实施例不做限定。
例如,在如图1所示的应用场景中,调度平台可以基于计算机集群1至计算机集群N中,每一计算机集群的部署位置,确定与目标租户对应的计算机集群为计算机集群1,并向计算机集群1发送任务处理请求。相应的,计算机集群1基于任务请求从数据平台中获取与任务调度请求对应的数据。
基于上述分析可知,本公开实施例提供了一种基于多租户技术的队列调度方法,该方法应用于多租户***中的调度设备,多租户***包括调度设备和至少一个计算机集群,该方法包括:响应于目标租户发起的任务调取请求,其中,任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与待处理任务对应的任务队列,其中,任务队列列表中包括至少一个任务队列,任务队列列表为依据多租户***下每一任务队列的队列状态信息所确定的,向与目标租户对应的计算机集群发送任务处理请求,其中,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理,在本实施例中,引入了:根据多租户***下每一任务队列的队列状态信息确定任务队列列表,并根据该任务队列列表确定与待处理任务对应的任务队列,以便采用与待处理任务对应的任务队列的紫云对待处理任务进行处理的技术特征,由于任务队列列表是基于所有租户的任务队列的队列状态信息确定的,因此,可以使得各任务队列被充分利用,以避免部分任务队列的负载过高,而部分任务队列闲置的弊端,实现了资源的合理调度和充分利用的技术效果。
图3是根据本公开第二实施例的示意图,如图3所示,本公开实施例提供的基于多租户技术的队列调度方法,包括:
S301:响应于目标租户发起的任务调取请求,获取目标租户对应的任务队列的队列状态信息,并获取多租户***下除目标租户以外的每一其他租户的任务队列的队列状态信息。
其中,本公开实施例的基于多租户技术的队列调度方法应用于多租户***中的调度设备,多租户***包括所述调度设备和至少一个计算机集群。调度。
关于本实施例中与上述实施例中相同的内容,如本实施例的执行主体、该步骤中任务队列的队列状态信息等,本实施例不做赘述。
多租户***下可以包括多个租户,且多个租户中包括目标租户和其他租户,其他租户的数量可以为一个,也可以为多个,本实施例不做限定。
若其他租户的数量为一个,则该步骤可以理解为:既获取目标租户对应的任务队列的队列状态信息,又获取该一个其他租户的任务队列的队列状态信息。
若其他租户的数量为多个,则该步骤可以理解为:既获取目标租户对应的任务队列的队列状态信息,又获取该多个其他租户中每一其他租户的任务队列的队列状态信息。
S302:根据目标租户的任务队列的队列状态信息、各其他租户的任务队列的队列状态信息,从目标租户对应的任务队列和各其他租户对应的任务队列中确定候选的任务队列。
其中,候选的任务队列中可能包括目标租户对应的任务队列;也可能包括某一个或者某多个其他租户对应的任务队列;也可能既包括目标租户对应的任务队列,又包括某一个或者某多个其他租户对应的任务队列。
在一些实施例中,S302可以包括如下步骤:
第一步骤:判断目标租户的任务队列的队列状态信息是否满足处理待处理任务的资源需求,若是,则执行第二步骤,若否,则执行第三步骤。
第二步骤:从目标租户对应的任务队列中确定候选的任务队列。
第三步骤:从各其他租户对应的任务队列中确定候选的任务队列。
也就是说,优先考虑从目标租户的任务队列中确定候选的任务队列,而在目标租户的任务队列可能没有办法完成任务调度请求,或者完成任务调度请求的效率偏低时,则从各其他租户对应的任务队列中确定候选的任务队列,以优先对目标租户的资源进行利用,避免占用其他租户的资源,以尽可能同时满足目标租户的任务调度需求和其他租户的任务调度需求,且避免任务调度处理过程中的干扰,提高对任务调度处理可靠性的技术效果。
在一些实施例中,第二步骤可以包括如下子步骤:
第一子步骤:确定目标租户对应的任务队列中的每一任务队列的资源使用率。
第二子步骤:根据各资源使用率从目标租户对应的任务队列中确定候选的任务队列。
例如,从各资源使用率(可以包括:CPU使用率、内存使用率、应用使用率中的一种或多种)中确定资源使用率最高的资源使用率,并将资源使用率最高的任务队列确定为候选的任务队列。
又如,基于资源使用率的从高到低的方式对目标租户对应的任务队列进行降序排列,并将资源使用率大于预设使用率阈值(可以基于需求、历史记录、以及试验等方式进行设置)的任务队列确定为候选的任务队列。
在本实施例中,通过基于资源使用率确定候选的任务队列,可以提高资源利用率,提高队列调度的可靠性的技术效果。
基于上述分析可知,可以从资源使用率的维度确定候选的任务队列,在另一些实施例中,可以将任务队列分为普通任务队列和核心任务队列,核心任务队列的效率高于普通任务队列,则第二步骤可以包括如下子步骤:
第一子步骤:获取待处理任务的等级属性信息。
其中,待处理任务的等级属性信息用于表征,待处理任务的重要程度,即待处理任务被处理时需要对应的优先级,一般而言等级属性信息所表征的优先级越高,则待处理任务的重要程度越高,需要被优先处理的可能性越强。
换言之,任务可以被分为普通任务和核心任务,普通任务的等级属性信息所表征的优先级低于核心任务,核心任务的等级属性信息所表征的优先级高于核心任务,普通任务可以按照一般的处理进度进行处理,而核心任务通常需要快速高效的被处理。
第二子步骤:若等级属性信息表征待处理任务为高优先级的任务,则从目标租户对应的核心任务队列中确定候选的任务队列。
第三子步骤:若等级属性信息表征待处理任务为低优先级的任务,则从目标租户对应的普通任务队列中确定候选的任务队列。
示例性的,若待处理任务为普通任务,则可以从目标租户对应的普通任务队列中确定候选的任务队列,若待处理任务为核心任务,则可以从目标租户对应的核心任务队列中确定候选的任务队列。
其中,若普通任务队列和/或核心任务队列的数量为多个,则可以基于资源使用率等,从普通任务队列和/或核心任务队列中确定候选的任务队列。
反之,例如,若核心任务队列的数量为一个,则可以将该一个核心任务队列确定为候选的任务队列。
值得说明的是,在本实施例中,通过结合待处理任务的等级属性信息、核心任务队列、普通任务队列,确定候选的任务队列,可以实现对不同等级属性信息的任务的灵活性处理,提高任务调度的灵活性和多样性,满足不同等级属性信息的任务的处理效率需求的技术效果。
在另一些实施例中,任务队列可以分为普通任务队列和核心任务队列,且核心任务队列具有相应的时间区间,即相对而言,针对任意核心任务队列,该核心任务队列处理任务的时间比较集中,该核心任务队列集中处理任务的时间称为该核心任务队列处理任务的时间区间,而在该时间区间外的其他时间,该核心任务队列通常处理空闲状态。
在本实施例中,任务调度请求中包括调度时间,以通过结合调度时间和各时间区间确定候选的任务队列。例如:
确定调度时间与每一时间区间之间的涵盖关系,若调度时间被某一核心任务队列的时间区间涵盖,即调度时间处于该时间区间,而由于该时间区间时,该核心任务队列通常需要处理任务,因此,不考虑基于该任务队列执行任务调度请求。
若调度时间不被某一核心任务队列的时间区间涵盖,即调度时间不处于该时间区间,而由于该时间区间时,该核心任务队列通常不需要处理任务,处于空闲状态,因此,可以将该核心任务队列确定为候选的任务队列。
值得说明的是,在本实施例中,通过结合调度时间和各时间区间确定候选的任务队列,可以避免核心任务队列被闲置,而其他任务队列拥挤的弊端,提高了资源的合理利用的技术效果。
S303:根据各候选的任务队列,构建任务队列列表。
结合上述分析可知,任务队列列表中可能既包括目标租户对应的任务队列,又包括某一个或者某多个其他租户对应的任务队列。因此,可以使得目标租户与其他租户之间的任务队列被交叉调度,从而使得对队列调度的灵活性和多样性,而当基于任务队列列表处理任务调度请求时,提高任务调度请求的效率的技术效果。
S304:依据任务队列列表与各租户之间的包含关系,从任务队列列表中确定与待处理任务对应的任务队列。其中,包含关系表征各租户对应的任务队列是否存在于任务队列列表。
基于上述分析可知,任务队列列表为基于多租户***下的所有租户的任务队列确定的,因此,在本实施例中,可以基于包含关系从任务队列列表中确定与待处理任务对应的任务队列。
由于任务队列列表为基于多租户***下的所有租户的任务队列确定的,因此,确定的与待处理任务对应的任务队列具有更为宽泛的选择性,从而可以提高队列资源的充分利用的技术效果。
在一些实施例中,S304可以通过不同的实施例实现,如在第一实施例中,S304可以包括如下步骤:
第一步骤:判断任务队列列表中是否包括目标租户的队列,若是,则执行第二步骤,若否,则执行第三步骤。
第二步骤:确定目标租户对应的任务队列为与待处理任务对应的任务队列。
同理,通过优先将任务队列列表中的目标租户对应的任务列表,确定为与待处理任务对应的任务队列,可以避免占用其他租户的资源,以尽可能同时满足目标租户的任务调度需求和其他租户的任务调度需求,且避免任务调度处理过程中的干扰,提高对任务调度处理可靠性的技术效果。
在一些实施例中,若任务队列列表中,目标租户对应的任务列表的数量为多个,且结合上述分析可知,在任务队列列表中,目标租户对应的各任务列表可以是基于资源使用率排序的,则若该排序为降序,则可以将任务队列列表中的第一个目标租户对应的任务队列确定为与待处理任务对应的任务队列;若该排序为升序,则可以将任务队列列表中的最后一个目标租户对应的任务队列确定为与待处理任务对应的任务队列。
第三步骤:若任务队列列表中包括至少一个其他租户对应的任务队列,则获取任务队列列表中每一任务队列的待执行任务信息。
第四步骤:若根据各待执行任务信息,确定任务队列列表的任务队列中包括无需处理任务的任务队列,则确定无需处理任务的任务队列为与待处理任务对应的任务队列。
其中,任务队列列表中每一任务队列的执行任务信息可以理解为,在针对任务队列列表中的任意任务队列,该任务队列可能包括需要执行的任务,也可能为空闲任务队列,即没有需要执行的任务。
在本实施例中,通过各待执行任务信息,将无需处理任务的任务队列确定为与待处理任务对应的任务队列,可以提高待处理任务被处理的效率的技术效果。
在一些实施例中,第四步骤可以包括如下子步骤:
第一子步骤:根据各待执行任务信息,判断任务队列列表中的队列任务,是否为正在处理任务的任务队列,若是,则执行第二子步骤,若否,则执行第三子步骤。
第二子步骤:获取在处理任务的任务队列中的每一任务队列的剩余资源,并确定最大剩余资源对应的任务队列为与待处理任务对应的任务队列。
通过将最大剩余资源对应的任务队列为与待处理任务对应的任务队列,可以尽可能满足待处理任务被处理时的效率的技术效果。
结合上述分析可知,在一些实施例中,在创建任务队列列表时,可以基于升序或者降序的方式创建任务队列列表,若任务队列列表中的任务队列是基于剩余资源的升序方式排序的,则可以将任务队列列表中的第一个任务队列确定为与待处理任务对应的任务队列;若任务队列列表中的任务队列是基于剩余资源的降序方式排序的,则可以将任务队列列表中的最后一个任务队列确定为与待处理任务对应的任务队列。
第三子步骤:将没有正在处理任务的任务队列确定为与待处理任务对应的任务队列。
其中,若没有正在处理任务的任务队列的数量为多个,则可以确定每一没有正在处理任务的任务队列的剩余资源,并将剩余资源最大的没有正在处理任务的任务队列确定为与待处理任务对应的任务队列。
在一些实施例中,在为待处理任务确定出任务队列,且确定出的任务队列为其他租户的任务队列时,可以对待处理任务进行标识处理,如对待处理任务的优先级进行降级处理,并将标识处理后的待处理任务调度至确定出的任务队列,以避免确定出的任务队列处理与其对应的租户的任务时的效率降低等影响,提高多租户***的稳定且可靠运行的技术效果。
在另一些实施例中,在S304的第二实施例中,结合上述分析可知,任务队列可以分为普通任务队列和核心任务队列,相应的,S304可以包括如下步骤:
第一步骤:判断任务队列列表中是否包括核心任务队列,若是,则执行第二步骤,若否,则执行第六步骤。
第二步骤:获取任务队列列表中每一核心任务队列的待执行任务信息。
第三步骤:根据各待执行任务信息判断任务队列列表的各核心任务队列中,是否包括无需处理任务的核心任务队列,若是,则执行第四步骤,若否,则执行第五步骤。
第四步骤:确定无需处理任务的核心任务队列为与待处理任务对应的任务队列。
第五步骤:获取在处理任务的核心任务队列中的每一任务队列的剩余资源,并确定最大剩余资源对应的核心任务队列为用于处理待处理任务的核心任务队列。
同理,通过将最大剩余资源对应的核心任务队列为与待处理任务对应的任务队列,可以尽可能满足待处理任务被处理时的效率的技术效果。
第六步骤:从任务队列列表中的普通任务队列中,确定与待处理任务对应的任务队列。
其中,第六步骤的实现原理可以参见上述实施例,此处不再赘述。
值得说明的是,在本实施例中,通过优先从任务队列列表中的普通任务队列中,确定与待处理任务对应的任务队列,可以提高待处理任务对处理的效率的技术效果。
在另一些实施例中,可以将上述针对S304描述的两个实施例整合为一个实施例。例如:
在基于S304的第一实施例,确定了任务队列列表中的第一个任务队列为与待处理任务对应的任务队列之后,可以进一步执行S304的第一实施例,如判断该第一任务队列是否为核心任务队列。
且在一些实施例中,可以采用预处理的方式对S304的第一实施例和第二实施例进行衔接处理。例如:
通过S304的第一实施例,确定了任务队列列表中的第一个任务队列为与待处理任务对应的任务队列,获取该第一个任务队列的负载,并判断该第一个任务队列的负载是否达到预设的负载阈值(如90%),若该第一个任务队列的负载没有达到负载阈值,则将待处理任务调度至该第一个任务队列;若该第一个任务队列的负载达到负载阈值,则判断该第一任务队列是否为核心任务队列,并执行后续操作。
其中,上述基于该第一个任务队列的负载进行预处理,只是用于说明可能存在的预处理的方式,而不能理解为对预处理的方式的限定。也可以基于目标租户的提交的任务调度请求的频率和数量等进行预处理。
S305:向与目标租户对应的计算机集群发送任务处理请求。其中,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理。
在一些实施例中,由于各租户提交的待处理任务的数量不同,因此,各租户使用任务队列的情况也不相同,为了防止同一个租户提交大量待处理任务等而导致占用任务队列的资源量过多,阻塞其他待处理任务(尤其是等级属性信息表征待处理任务为高优先的任务)的处理,调度平台可以对各租户的待处理任务的任务队列的资源进行控制。例如,调度平台可以对租户的待处理任务的数量进行限制;也可以对普通任务的任务队列的运行数量进行限制;也可以对大任务量的待处理任务进行降级处理,即在相对小任务量的待处理任务之后处理大任务量的待处理任务。
图4是根据本公开第三实施例的示意图,如图4所示,本公开实施例提供的基于多租户技术的队列调度装置400,装置应用于多租户***中的调度设备,多租户***包括调度设备和至少一个计算机集群,包括:
第一确定单元401,用于响应于目标租户发起的任务调取请求,其中,任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与待处理任务对应的任务队列;其中,任务队列列表中包括至少一个任务队列,任务队列列表为依据多租户***下每一任务队列的队列状态信息所确定的。
第二发送单元402,用于向与目标租户对应的计算机集群发送任务处理请求,其中,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理。
图5是根据本公开第四实施例的示意图,如图5所示,本公开实施例提供的基于多租户技术的队列调度装置500,装置应用于多租户***中的调度设备,多租户***包括调度设备和至少一个计算机集群,包括:
第一获取单元501,用于响应于目标租户发起的任务调取请求,获取目标租户对应的任务队列的队列状态信息。
第二获取单元502,用于获取多租户***下除目标租户以外的每一其他租户的任务队列的队列状态信息。
第二确定单元503,用于根据目标租户的任务队列的队列状态信息、各其他租户的任务队列的队列状态信息,从目标租户对应的任务队列和各其他租户对应的任务队列中确定候选的任务队列。
结合图5可知,在一些实施例中,第二确定单元503,包括:
第六确定子单元5031,用于若确定目标租户的任务队列的队列状态信息满足处理待处理任务的资源需求,则从目标租户对应的任务队列中确定候选的任务队列。
在一些实施例中,若确定目标租户的任务队列的队列状态信息满足处理待处理任务的资源需求,则第六确定子单元5031,包括:
第一确定模块,用于若确定目标租户的任务队列的队列状态信息满足处理待处理任务的资源需求,则确定目标租户对应的任务队列中的每一任务队列的资源使用率。
第二确定模块,用于根据各资源使用率从目标租户对应的任务队列中确定候选的任务队列。
在一些实施例中,各租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;若确定目标租户的任务队列的队列状态信息满足处理待处理任务的资源需求,则第六确定子单元5031,包括:
获取模块,用于获取待处理任务的等级属性信息。
第三确定模块,用于若等级属性信息表征待处理任务为高优先级的任务,则从目标租户对应的核心任务队列中确定候选的任务队列。
第四确定模块,用于若等级属性信息表征待处理任务为低优先级的任务,则从目标租户对应的普通任务队列中确定候选的任务队列。
第七确定子单元5032,用于若确定目标租户的任务队列的队列状态信息不满足处理待处理任务的资源需求,则从各其他租户对应的任务队列中确定候选的任务队列。
结合图5可知,在一些实施例中,每一租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处于任务的效率高于普通任务队列;任务调度请求中还包括调度时间;第二确定单元503,包括:
第五获取子单元5033,用于获取各核心任务队列处理任务的时间区间。
第八确定单元5034,用于若调度时间未处于至少一个时间区间,则从至少一个时间区间对应的核心任务队列中确定候选的核心任务队列。
构建单元504,用于根据各候选的任务队列,构建任务队列列表。
第一确定单元505,用于响应于目标租户发起的任务调取请求,其中,任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与待处理任务对应的任务队列;其中,任务队列列表中包括至少一个任务队列,任务队列列表为依据多租户***下每一任务队列的队列状态信息所确定的。
在一些实施例中,第一确定单元505用于,依据任务队列列表与各租户之间的包含关系,其中,包含关系表征各租户对应的任务队列是否存在于任务队列列表,从任务队列列表中确定与待处理任务对应的任务队列。
结合图5可知,在一些实施例中,第一确定单元505,包括:
第一获取子单元5051,用于若任务队列列表中包括至少一个其他租户对应的任务队列,且不包括目标租户对应的任务队列,则获取任务队列列表中每一任务队列的待执行任务信息。
第一确定子单元5052,用于若根据各待执行任务信息,确定任务队列列表的任务队列中包括无需处理任务的任务队列,则确定无需处理任务的任务队列为与待处理任务对应的任务队列。
第二获取子单元5053,用于若根据各待执行任务信息确定任务队列列表中的队列任务,均为正在处理任务的任务队列,则获取在处理任务的任务队列中的每一任务队列的剩余资源。
第二确定子单元5054,用于确定最大剩余资源对应的任务队列为与待处理任务对应的任务队列。
在一些实施例中,第一确定单元505用于,若任务队列列表中包括目标租户对应的任务队列,则确定目标租户对应的任务队列为与待处理任务对应的任务队列。
在一些实施例中,任务队列列表中的任务队列包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;结合图5可知,第一确定单元505,包括:
第三获取子单元5055,用于若任务队列列表中具有核心任务队列,则获取任务队列列表中每一核心任务队列的待执行任务信息。
第三确定子单元5056,用于若根据各待执行任务信息确定任务队列列表的各核心任务队列中,包括无需处理任务的核心任务队列,则确定无需处理任务的核心任务队列为与待处理任务对应的任务队列。
第四确定子单元5057,用于若任务队列列表中没有核心任务队列,则基于任务队列列表中的普通任务队列确定与待处理任务对应的任务队列。
第四获取子单元5058,用于若根据各待执行任务信息确定任务队列列表的核心任务队列均为正在处理任务的核心任务队列,则获取在处理任务的核心任务队列中的每一任务队列的剩余资源。
第五确定子单元5059,用于确定最大剩余资源对应的核心任务队列为用于处理待处理任务的核心任务队列。
第二发送单元506,用于向与目标租户对应的计算机集群发送任务处理请求,其中,任务处理请求用于指示与待处理任务对应的任务队列,且任务处理请求用于指示采用与待处理任务对应的任务队列的资源对待处理任务进行处理。
图6是根据本公开第五实施例的示意图,如图6所示,本公开中的电子设备600可以包括:处理器601和存储器602。
存储器602,用于存储程序;存储器602,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器602用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器602中。并且上述的计算机程序、计算机指令、数据等可以被处理器601调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器602中。并且上述的计算机程序、计算机指据等可以被处理器601调用。
处理器601,用于执行存储器602存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。
具体可以参见前面方法实施例中的相关描述。
处理器601和存储器602可以是独立结构,也可以是集成在一起的集成结构。当处理器601和存储器602是独立结构时,存储器602、处理器601可以通过总线603耦合连接。
本实施例的电子设备可以执行上述方法中的技术方案,其具体实现过程和技术原理相同,此处不再赘述。
根据本公开实施例的另一个方面,本公开实施例提供了一种调度设备,包括:如上任一实施例所述的基于多租户技术的队列调度装置。
在一些实施例中,如图7所示,调度设备700包括:
流控模块701,用于接收各租户发起的任务调度请求,并对各任务调度请求进行流控处理。
其中,流控处理包括如图7中所示的:请求数量限制、运行数量限制、任务类型限制。请求数量限制是指,对租户的任务调度请求的数量的限制处理。运行数量限制是指,对租户的任务的运行数量的限制处理。任务类型限制是指,对相对较大任务量的任务的降级处理。
调度策略模块702,用于结合如图7中所示的:实时资源量、任务队列优先级、跨租户任务队列调用、时间段任务队列调用,构建任务队列列表。
其中,实施资源量可以为上述实施例中的资源使用率等。任务队列优先级可以为上述实施例中的普通任务队列和核心任务队列的优先级等。跨租户任务队列调用可以为上述实施例中的基于每一其他租户的任务队列的队列状态信息,构建任务队列列表等。时间段任务队列调用可以为上述实施例中基于待处理任务的调度时间各时间区间,构建任务队列列表等。
在一些实施例中,可以基于计算机集群为单位,构建计算机集群队列池。如图7所示,计算机集群队列池703中包括各计算机集群各自对应的任务队列列表。例如,计算机集群A的任务队列列表中包括任务队列A1、A2直至任务队列An,计算机集群B的任务队列列表中包括任务队列B1、B2直至任务队列Bn,计算机集群C的任务队列列表中包括任务队列C1、C2直至任务队列Cn。其中,n为大于1的正整数。
值得说明的是,上述模块的划分只是对调度设备的示范性的说明,而不能理解为对调度设备的限定。例如,如图7所示,在另一些实施例中,调度设备还可以包括抓取模块704,用于获取各任务队列的负载、CPU使用率、内存使用率等队列状态信息,以便由调度策略模块基于队列状态信息构建任务队列列表。
根据本公开实施例的另一个方面,本公开实施例提供了一种基于多租户技术的多租户***,包括:调度设备和至少一个计算机集群。
其中,计算机集群包括至少一个计算机,计算机执行为其分配的任务队列中的任务。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如基于多租户技术的队列调度方法、装置及***。例如,在一些实施例中,基于多租户技术的队列调度方法、装置及***可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的基于多租户技术的队列调度方法、装置及***的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于多租户技术的队列调度方法、装置及***。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (26)
1.一种基于多租户技术的队列调度方法,所述方法应用于多租户***中的调度设备,所述多租户***包括所述调度设备和至少一个计算机集群,所述方法包括:
响应于目标租户发起的任务调取请求,其中,所述任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与所述待处理任务对应的任务队列;其中,所述任务队列列表中包括至少一个任务队列,所述任务队列列表为依据所述多租户***下每一任务队列的队列状态信息所确定的;
向与所述目标租户对应的计算机集群发送任务处理请求,其中,所述任务处理请求用于指示与所述待处理任务对应的任务队列,且所述任务处理请求用于指示采用与所述待处理任务对应的任务队列的资源对所述待处理任务进行处理;
在从预设的任务队列列表中确定与所述待处理任务对应的任务队列之前,还包括:
响应于目标租户发起的任务调取请求,获取所述目标租户对应的任务队列的队列状态信息,并获取所述多租户***下除所述目标租户以外的每一其他租户的任务队列的队列状态信息;
根据所述目标租户的任务队列的队列状态信息、各所述其他租户的任务队列的队列状态信息,从所述目标租户对应的任务队列和各所述其他租户对应的任务队列中确定候选的任务队列;
根据各所述候选的任务队列,构建所述任务队列列表。
2.根据权利要求1所述的方法,其中,从预设的任务队列列表中确定与所述待处理任务对应的任务队列,包括:
依据所述任务队列列表与各租户之间的包含关系,其中,所述包含关系表征各租户对应的任务队列是否存在于所述任务队列列表,从所述任务队列列表中确定与所述待处理任务对应的任务队列。
3.根据权利要求2所述的方法,其中,依据所述任务队列列表与各租户之间的包含关系,从所述任务队列列表中确定与所述待处理任务对应的任务队列,包括:
若所述任务队列列表中包括至少一个其他租户对应的任务队列,且不包括所述目标租户对应的任务队列,则获取所述任务队列列表中每一任务队列的待执行任务信息;
若根据各待执行任务信息,确定所述任务队列列表的任务队列中包括无需处理任务的任务队列,则确定无需处理任务的任务队列为与所述待处理任务对应的任务队列。
4.根据权利要求3所述的方法,还包括:
若根据各待执行任务信息确定所述任务队列列表中的队列任务,均为正在处理任务的任务队列,则获取在处理任务的任务队列中的每一任务队列的剩余资源,并确定最大剩余资源对应的任务队列为与所述待处理任务对应的任务队列。
5.根据权利要求2所述的方法,其中,依据所述任务队列列表与各租户之间的包含关系,从所述任务队列列表中确定与所述待处理任务对应的任务队列,包括:
若所述任务队列列表中包括所述目标租户对应的任务队列,则确定所述目标租户对应的任务队列为与所述待处理任务对应的任务队列。
6.根据权利要求2所述的方法,所述任务队列列表中的任务队列包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;其中,从预设的任务队列列表中确定与所述待处理任务对应的任务队列,包括:
若所述任务队列列表中具有核心任务队列,则获取所述任务队列列表中每一核心任务队列的待执行任务信息,并若根据各待执行任务信息确定所述任务队列列表的各核心任务队列中,包括无需处理任务的核心任务队列,则确定无需处理任务的核心任务队列为与所述待处理任务对应的任务队列;
若所述任务队列列表中没有核心任务队列,则基于所述任务队列列表中的普通任务队列确定与所述待处理任务对应的任务队列。
7.根据权利要求6所述的方法,还包括:
若根据各待执行任务信息确定所述任务队列列表的核心任务队列均为正在处理任务的核心任务队列,则获取在处理任务的核心任务队列中的每一任务队列的剩余资源,并确定最大剩余资源对应的核心任务队列为用于处理所述待处理任务的核心任务队列。
8.根据权利要求1-7任一项所述的方法,根据所述目标租户的任务队列的队列状态信息、各所述其他租户的任务队列的队列状态信息,从所述目标租户对应的任务队列和各所述其他租户对应的任务队列中确定候选的任务队列,包括:
若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则从所述目标租户对应的任务队列中确定候选的任务队列;
若确定所述目标租户的任务队列的队列状态信息不满足处理所述待处理任务的资源需求,则从各所述其他租户对应的任务队列中确定候选的任务队列。
9.根据权利要求8所述的方法,其中,若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则从所述目标租户对应的任务队列中确定候选的任务队列,包括:
若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则确定所述目标租户对应的任务队列中的每一任务队列的资源使用率,并根据各资源使用率从所述目标租户对应的任务队列中确定候选的任务队列。
10.根据权利要求8所述的方法,其中,各租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则从所述目标租户对应的任务队列中确定候选的任务队列,包括:
获取所述待处理任务的等级属性信息;
若所述等级属性信息表征所述待处理任务为高优先级的任务,则从所述目标租户对应的核心任务队列中确定候选的任务队列;
若所述等级属性信息表征所述待处理任务为低优先级的任务,则从所述目标租户对应的普通任务队列中确定候选的任务队列。
11.根据权利要求9或10所述的方法,每一租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处于任务的效率高于普通任务队列;所述任务调度请求中还包括调度时间;所述方法还包括:
获取各核心任务队列处理任务的时间区间;
若所述调度时间未处于至少一个时间区间,则从所述至少一个时间区间对应的核心任务队列中确定候选的核心任务队列。
12.一种基于多租户技术的队列调度装置,所述装置应用于多租户***中的调度设备,所述多租户***包括所述调度设备和至少一个计算机集群,所述装置包括:
第一确定单元,用于响应于目标租户发起的任务调取请求,其中,所述任务调取请求用于指示处理待处理任务,从预设的任务队列列表中确定与所述待处理任务对应的任务队列;其中,所述任务队列列表中包括至少一个任务队列,所述任务队列列表为依据所述多租户***下每一任务队列的队列状态信息所确定的;
第二发送单元,用于向与所述目标租户对应的计算机集群发送任务处理请求,其中,所述任务处理请求用于指示与所述待处理任务对应的任务队列,且所述任务处理请求用于指示采用与所述待处理任务对应的任务队列的资源对所述待处理任务进行处理;
第一获取单元,用于响应于目标租户发起的任务调取请求,获取所述目标租户对应的任务队列的队列状态信息;
第二获取单元,用于获取所述多租户***下除所述目标租户以外的每一其他租户的任务队列的队列状态信息;
第二确定单元,用于根据所述目标租户的任务队列的队列状态信息、各所述其他租户的任务队列的队列状态信息,从所述目标租户对应的任务队列和各所述其他租户对应的任务队列中确定候选的任务队列;
构建单元,用于根据各所述候选的任务队列,构建所述任务队列列表。
13.根据权利要求12所述的装置,其中,所述第一确定单元用于,依据所述任务队列列表与各租户之间的包含关系,其中,所述包含关系表征各租户对应的任务队列是否存在于所述任务队列列表,从所述任务队列列表中确定与所述待处理任务对应的任务队列。
14.根据权利要求13所述的装置,其中,所述第一确定单元,包括:
第一获取子单元,用于若所述任务队列列表中包括至少一个其他租户对应的任务队列,且不包括所述目标租户对应的任务队列,则获取所述任务队列列表中每一任务队列的待执行任务信息;
第一确定子单元,用于若根据各待执行任务信息,确定所述任务队列列表的任务队列中包括无需处理任务的任务队列,则确定无需处理任务的任务队列为与所述待处理任务对应的任务队列。
15.根据权利要求14所述的装置,所述第一确定单元,还包括:
第二获取子单元,用于若根据各待执行任务信息确定所述任务队列列表中的队列任务,均为正在处理任务的任务队列,则获取在处理任务的任务队列中的每一任务队列的剩余资源;
第二确定子单元,用于确定最大剩余资源对应的任务队列为与所述待处理任务对应的任务队列。
16.根据权利要求13所述的装置,其中,所述第一确定单元用于,若所述任务队列列表中包括所述目标租户对应的任务队列,则确定所述目标租户对应的任务队列为与所述待处理任务对应的任务队列。
17.根据权利要求13所述的装置,所述任务队列列表中的任务队列包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;所述第一确定单元,包括:
第三获取子单元,用于若所述任务队列列表中具有核心任务队列,则获取所述任务队列列表中每一核心任务队列的待执行任务信息;
第三确定子单元,用于若根据各待执行任务信息确定所述任务队列列表的各核心任务队列中,包括无需处理任务的核心任务队列,则确定无需处理任务的核心任务队列为与所述待处理任务对应的任务队列;
第四确定子单元,用于若所述任务队列列表中没有核心任务队列,则基于所述任务队列列表中的普通任务队列确定与所述待处理任务对应的任务队列。
18.根据权利要求17所述的装置,所述第一确定单元,还包括:
第四获取子单元,用于若根据各待执行任务信息确定所述任务队列列表的核心任务队列均为正在处理任务的核心任务队列,则获取在处理任务的核心任务队列中的每一任务队列的剩余资源;
第五确定子单元,用于确定最大剩余资源对应的核心任务队列为用于处理所述待处理任务的核心任务队列。
19.根据权利要求12-18任一项所述的装置,所述第二确定单元,包括:
第六确定子单元,用于若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则从所述目标租户对应的任务队列中确定候选的任务队列;
第七确定子单元,用于若确定所述目标租户的任务队列的队列状态信息不满足处理所述待处理任务的资源需求,则从各所述其他租户对应的任务队列中确定候选的任务队列。
20.根据权利要求19所述的装置,其中,若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则所述第六确定子单元,包括:
第一确定模块,用于若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则确定所述目标租户对应的任务队列中的每一任务队列的资源使用率;
第二确定模块,用于根据各资源使用率从所述目标租户对应的任务队列中确定候选的任务队列。
21.根据权利要求19所述的装置,其中,各租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处理任务的效率高于普通任务队列;若确定所述目标租户的任务队列的队列状态信息满足处理所述待处理任务的资源需求,则所述第六确定子单元,包括:
获取模块,用于获取所述待处理任务的等级属性信息;
第三确定模块,用于若所述等级属性信息表征所述待处理任务为高优先级的任务,则从所述目标租户对应的核心任务队列中确定候选的任务队列;
第四确定模块,用于若所述等级属性信息表征所述待处理任务为低优先级的任务,则从所述目标租户对应的普通任务队列中确定候选的任务队列。
22.根据权利要求20或21所述的装置,每一租户各自对应的任务队列中包括普通任务队列和核心任务队列,核心任务队列处于任务的效率高于普通任务队列;所述任务调度请求中还包括调度时间;所述第二确定单元,还包括:
第五获取子单元,用于获取各核心任务队列处理任务的时间区间;
第八确定单元,用于若所述调度时间未处于至少一个时间区间,则从所述至少一个时间区间对应的核心任务队列中确定候选的核心任务队列。
23.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
25.一种调度设备,包括:如权利要求12-22中任一项所述的装置。
26.一种基于多租户技术的多租户***,包括:
如权利要求25所述的调度设备;
至少一个计算机集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111255682.7A CN113986497B (zh) | 2021-10-27 | 2021-10-27 | 基于多租户技术的队列调度方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111255682.7A CN113986497B (zh) | 2021-10-27 | 2021-10-27 | 基于多租户技术的队列调度方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986497A CN113986497A (zh) | 2022-01-28 |
CN113986497B true CN113986497B (zh) | 2022-11-22 |
Family
ID=79742536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111255682.7A Active CN113986497B (zh) | 2021-10-27 | 2021-10-27 | 基于多租户技术的队列调度方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986497B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086234B (zh) * | 2022-05-09 | 2024-04-26 | 阿里巴巴(中国)有限公司 | 消息处理方法及***、设备及存储介质 |
CN115858133B (zh) * | 2023-03-01 | 2023-05-02 | 北京仁科互动网络技术有限公司 | 批量数据的处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847950B1 (en) * | 2017-03-16 | 2017-12-19 | Flexera Software Llc | Messaging system thread pool |
CN109034396A (zh) * | 2018-07-11 | 2018-12-18 | 北京百度网讯科技有限公司 | 用于处理分布式集群中的深度学习作业的方法和装置 |
CN111488224A (zh) * | 2020-03-30 | 2020-08-04 | 武汉时波网络技术有限公司 | 一种分布式计量计费的方法及*** |
CN111679900A (zh) * | 2020-06-15 | 2020-09-18 | 杭州海康威视数字技术股份有限公司 | 任务处理方法和装置 |
CN111866045A (zh) * | 2019-04-29 | 2020-10-30 | 京东数字科技控股有限公司 | 信息处理方法及其装置、计算机***及计算机可读介质 |
CN113204433A (zh) * | 2021-07-02 | 2021-08-03 | 上海钐昆网络科技有限公司 | 一种集群资源的动态分配方法、装置、设备及存储介质 |
CN113424152A (zh) * | 2019-08-27 | 2021-09-21 | 微软技术许可有限责任公司 | 多租户分布式***中的基于工作流的调度和批处理 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8584124B2 (en) * | 2010-04-20 | 2013-11-12 | Salesforce.Com, Inc. | Methods and systems for batch processing in an on-demand service environment |
US11579932B2 (en) * | 2016-08-29 | 2023-02-14 | Vmware, Inc. | Tiered backup archival in multi-tenant cloud computing system |
US10728166B2 (en) * | 2017-06-27 | 2020-07-28 | Microsoft Technology Licensing, Llc | Throttling queue for a request scheduling and processing system |
CN111831420B (zh) * | 2020-07-20 | 2023-08-08 | 北京百度网讯科技有限公司 | 用于任务调度的方法、相关装置及计算机程序产品 |
-
2021
- 2021-10-27 CN CN202111255682.7A patent/CN113986497B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847950B1 (en) * | 2017-03-16 | 2017-12-19 | Flexera Software Llc | Messaging system thread pool |
CN109034396A (zh) * | 2018-07-11 | 2018-12-18 | 北京百度网讯科技有限公司 | 用于处理分布式集群中的深度学习作业的方法和装置 |
CN111866045A (zh) * | 2019-04-29 | 2020-10-30 | 京东数字科技控股有限公司 | 信息处理方法及其装置、计算机***及计算机可读介质 |
CN113424152A (zh) * | 2019-08-27 | 2021-09-21 | 微软技术许可有限责任公司 | 多租户分布式***中的基于工作流的调度和批处理 |
CN111488224A (zh) * | 2020-03-30 | 2020-08-04 | 武汉时波网络技术有限公司 | 一种分布式计量计费的方法及*** |
CN111679900A (zh) * | 2020-06-15 | 2020-09-18 | 杭州海康威视数字技术股份有限公司 | 任务处理方法和装置 |
CN113204433A (zh) * | 2021-07-02 | 2021-08-03 | 上海钐昆网络科技有限公司 | 一种集群资源的动态分配方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Pankaj Saha ; Angel Beltre ; Madhusudhan Govindaraju.Tromino: Demand and DRF Aware Multi-Tenant Queue Manager for Apache Mesos Cluster.《IEEE Xplore》.2019,全文. * |
一种面向多租户中间件的应用级并发控制方法;赵占平,王伟,张文博,蒲卫,范国闯;《计算机应用研究》;20120831;第29卷(第8期);全文 * |
面向SaaS应用的数据访问QoS保证方法;孙鹏,尹建伟;《计算机应用与软件》;20110531;第28卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113986497A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9329901B2 (en) | Resource health based scheduling of workload tasks | |
US10506024B2 (en) | System and method for equitable processing of asynchronous messages in a multi-tenant platform | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及*** | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN112559182A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN112783659B (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN114356547B (zh) | 基于处理器虚拟化环境的低优阻塞方法及装置 | |
CN112860974A (zh) | 计算资源的调度方法、装置、电子设备和存储介质 | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN114936173B (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
CN114461393A (zh) | 多任务调度方法、装置、电子设备、***及自动驾驶车辆 | |
CN112905314A (zh) | 异步处理方法、装置、电子设备、存储介质、及路侧设备 | |
CN112527509A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN112887407B (zh) | 用于分布式集群的作业流量控制方法和装置 | |
CN113590329A (zh) | 资源处理方法及装置 | |
CN113742075A (zh) | 基于云端分布式***的任务处理方法、装置及*** | |
CN112860401A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN113032092B (zh) | 分布式计算方法、装置及平台 | |
CN115328612A (zh) | 资源分配方法、装置、设备以及存储介质 | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN114327897A (zh) | 一种资源分配方法、装置及电子设备 | |
CN113867920A (zh) | 任务处理方法、装置、电子设备和介质 | |
CN113971082A (zh) | 任务调度方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |