CN106897124B - 一种多租户请求处理方法、装置及设备 - Google Patents

一种多租户请求处理方法、装置及设备 Download PDF

Info

Publication number
CN106897124B
CN106897124B CN201510956621.1A CN201510956621A CN106897124B CN 106897124 B CN106897124 B CN 106897124B CN 201510956621 A CN201510956621 A CN 201510956621A CN 106897124 B CN106897124 B CN 106897124B
Authority
CN
China
Prior art keywords
request
tenant
group
waiting queue
target
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
Application number
CN201510956621.1A
Other languages
English (en)
Other versions
CN106897124A (zh
Inventor
倪伟渊
张园园
石腾
徐谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510956621.1A priority Critical patent/CN106897124B/zh
Publication of CN106897124A publication Critical patent/CN106897124A/zh
Application granted granted Critical
Publication of CN106897124B publication Critical patent/CN106897124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

本发明涉及计算机技术领域,尤其涉及一种多租户请求处理方法、装置及设备,用以解决请求调度效率较低的问题,该方法为:请求调度器在接收到处理节点发送的空闲资源提示信息时,根据上次已处理请求确定目标租户和目标请求,请求调度器若确定已处理请求与目标请求归属于同一请求组,则将目标请求发送至处理节点,因此能够实现同一租户的多个资源需求较小的请求连续处理,减少请求调度的信令开销,避免了短时间内的频繁调度,提高了调度请求的效率。

Description

一种多租户请求处理方法、装置及设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种多租户请求处理方法、装置及设备。
背景技术
软件即服务(Software as a Service,SaaS)是一种软件交付模式。在这种交付模式中,云端集中式托管软件及其相关的数据,用户仅需通过互联网,而不须通过安装即可使用软件。
SaaS通常有两种技术实现方式:“单租户SaaS”和“多租户SaaS”。其中,这里的租户是指SaaS客户,一个租户通常对应一个组织,例如公司、学校等。
1、单租户SaaS
单租户SaaS的架构如图1(a)所示,每个租户单独创建各自的软件应用和支撑环境。单租户SaaS被广泛应用在租户需要支持定制化的场景,而这种定制或者是因为地域,抑或是他们需要更高的安全控制。因此,在单租户SaaS模式中,每个租户都有一份分别放在独立的服务器上的数据库和操作系统,或者使用强的安全措施进行隔离的虚拟网络环境中。
2、多租户SaaS
多租户SaaS的架构如图1(b)所示,在多租户环境中,应用都是运行在同一个或者一组服务器上,被称为“单实例”架构(Single Instance)。多个租户的数据保存在相同的位置,并对各个租户的数据进行分区来确保租户之间的数据隔离。鉴于多个租户在运行中使用相同的应用实例,并且所有数据都保存在一个多租户隔离的数据库中,这时每一个租户只能在该应用实例的基础功能集上进行有限的定制。
目前大部分SaaS供应商提供的是多租户SaaS,相对单租户SaaS,多租户SaaS主要有以下几个优势:
(1)弹性管理简单,只需要对多租户平台增加资源就可以支持更多租户;而单租户模式则需要分别进行扩展。
(2)采用一套基础代码的应用实例可以支持所有租户,只需维护一个软件版本,产品升级非常容易,可以减少开发成本、且能够快速定位和修复问题。
(3)SaaS提供商可以对用户的应用实例使用情况进行统一分析,进而优化产品功能。
但是,由于多租户SaaS模式的底层资源并不是显式地分配给各个租户,在多租户共享同一应用实例时可能会出现资源劫持现象,也就是由于误操作或过载可能导致个别租户侵占大量资源而影响其它租户性能。因此需要对各个租户进行性能隔离,防止租户间出现由于资源侵占而导致的性能干扰。
现有技术中,采用请求准入控制算法实现各个租户的性能隔离,并实现对多租户的应用请求进行调度。该算法对应的系统结构如图2所示,每个租户对应一个请求等待队列,租户新到达的请求放在该租户的请求等待队列末端。当处理节点有空闲资源时,处理节点发送提示信息给请求调度器,请求调度器接收到该指示后选择一个租户并将其队列中最前端的请求发送给处理节点,然后根据该请求的资源需求更新对应租户的资源配额使用率等信息。
具体的,请求调度器确定一个单位时间窗口,例如1秒,并为各个租户分别指定在单位时间窗口内的资源配额,即每个租户允许使用资源的时间。请求调度器可以根据租户在当前单位时间窗口的资源配额使用率,选择请求等待队列非空的租户中资源配额使用率最低的一个租户,并将该租户的请求等待队列中最早到达的请求发送给处理节点,然后根据该请求的资源需求,即预估的处理时间,更新对应租户的资源配额使用率。
例如,假设一个应用实例有3个租户,单位时间窗口为1秒,租户的资源配额和使用情况如下表1所示。
由表1可知,资源配额使用率最低的是租户1。因此将租户1的请求等待队列中最前端的请求发送给处理节点。假设发送给处理节点的请求的资源需求为30ms,那么将租户1的已使用配额更新为90ms,即60ms+30ms,资源配额使用率更新为30%,即90/300。
这里各租户各个类型请求的资源需求可以采用离线统计分析或在线估计的方式获得。
表1
租户 配额 已使用配额 资源配额使用率
1 300ms 60ms 20%
2 400ms 160ms 40%
3 300ms 90ms 30%
由上可知,处理每个请求之前都要调用请求准入控制算法,而多租户SaaS模式中,每个应用实例需要支撑很多租户,平均每个实例要支撑2000多个租户,这时进行请求准入控制的调度开销较大,特别是对于资源需求较小的请求,由于请求准入控制而消耗的调度时间会占请求总处理时间的显著部分,造成请求调度效率较低。
发明内容
本发明的目的是提供一种多租户请求处理方法、装置及设备,用以解决请求调度效率较低的问题。
本发明的目的是通过以下技术方案实现的:
第一方面,一种多租户请求处理方法,包括:
缓冲管理器在接收到一个请求时,确定所述请求的资源需求和所述请求对应的租户;
所述缓冲管理器若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;
所述缓冲管理器按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;
所述缓冲管理器监视所述第一请求等待队列的资源需求之和,若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中绑定为请求组后的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
结合第一方面,在第一方面的第一种可能的实现方式中,每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第一方面,在第一方面的第二种可能的实现方式中,缓冲管理器确定所述请求的资源需求和所述请求对应的租户,包括;
所述缓冲管理器解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
所述缓冲管理器根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
结合第一方面,在第一方面的第三种可能的实现方式中,所述缓冲管理器将所述请求放入所述租户对应的第二请求等待队列中之前,还包括:
所述缓冲管理器确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
结合第一方面或以上任一一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述缓冲管理器按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,包括:
所述缓冲管理器在将所述请求放入所述租户对应的第二请求等待队列中之后,所述缓冲管理器确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若所述缓冲管理器确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于所述绑定门限,则将所述请求加入所述待加入请求组。
结合第一方面或以上任一一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述缓冲管理器将所述请求加入所述待加入请求组,包括:
所述缓冲管理器为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
所述缓冲管理器为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
第二方面,一种多租户请求处理方法,包括:
请求调度器在接收到处理节点发送的空闲资源提示信息时,确定目标租户,所述目标租户为上次已处理请求对应的租户。
所述请求调度器确定目标请求,所述目标请求为目标租户对应的第一请求等待队列中最早到达的请求;
所述请求调度器若确定所述已处理请求与所述目标请求归属于同一请求组,则将所述目标请求发送至所述处理节点。
结合第二方面,在第二方面的第一种可能的实现方式中,所述同一请求组中包括至少一个请求、且所述至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第二方面,在第二方面的第二种可能的实现方式中,所述请求调度器确定目标租户,包括:
所述请求调度器根据针对所述已处理请求记录的处理信息中包括的租户ID,确定目标租户;
所述请求调度器将所述目标请求发送至所述处理节点之后,还包括:
所述请求调度器将针对所述已处理请求记录的处理信息更新为针对所述目标请求的处理信息,并更新所述目标租户的资源配额使用情况。
结合第二方面或以上任一一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述请求调度器确定所述已处理请求与所述目标请求归属于同一请求组,包括:
所述请求调度器根据针对所述已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组。
结合第二方面或以上任一一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述请求调度器确定所述已处理请求与所述目标请求归属于同一请求组,包括:
所述请求调度器若确定所述目标请求携带第二捆绑标识,确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
结合第二方面或以上任一一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述方法还包括:所述请求调度器若确定所述已处理请求与所述目标请求不归属于同一请求组,所述请求调度器选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户,并将所述当前待处理租户对应的第一请求等待队列中最早到达的请求发送给所述处理节点。
第三方面,一种多租户请求处理装置,包括:
第一接收单元,用于接收一个请求;
第一处理单元,用于确定所述请求的资源需求和所述请求对应的租户;若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;
绑定单元,用于按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;
监视单元,用于监视所述第一请求等待队列的资源需求之和;
第一队列调度单元,用于若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中绑定为请求组后的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
结合第三方面,在第三方面的第一种可能的实现方式中,所述绑定单元绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第三方面,在第三方面的第二种可能的实现方式中,确定所述请求的资源需求和所述请求对应的租户时,所述第一接收单元,具体用于;
解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
结合第三方面,在第三方面的第三种可能的实现方式中,将所述请求放入所述租户对应的第二请求等待队列中之前,所述第一处理单元还用于:
确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
结合第三方面或以上任一一种可能的实现方式,在第三方面的第四种可能的实现方式中,按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,所述绑定单元具体用于:
在将所述请求放入所述租户对应的第二请求等待队列中之后,确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于所述绑定门限,则将所述请求加入所述待加入请求组。
结合第三方面或以上任一一种可能的实现方式,在第三方面的第五种可能的实现方式中,将所述请求加入所述待加入请求组时,所述绑定单元具体用于:
为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
第四方面,一种多租户请求处理装置,包括:
第二接收单元,用于接收处理节点发送的空闲资源提示信息;
第二处理单元,用于在所述第二接收单元接收到空闲资源提示信息时,确定目标租户,所述目标租户为上次已处理请求对应的租户,并确定目标请求,所述目标请求为目标租户对应的第一请求等待队列中最早到达的请求,并确定所述已处理请求与所述目标请求归属于同一请求组;
第二发送单元,用于在若确定所述已处理请求与所述目标请求归属于同一请求组时,则将所述目标请求发送至所述处理节点。
结合第四方面,在第四方面的第一种可能的实现方式中,所述同一请求组中包括至少一个请求、且所述至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第四方面,在第四方面的第二种可能的实现方式中,确定目标租户时,所述第二接收单元,具体用于:
根据针对所述已处理请求记录的处理信息中包括的租户ID,确定目标租户;
将所述目标请求发送至所述处理节点之后,所述装置还包括:
记录单元,用于将针对所述已处理请求记录的处理信息更新为针对所述目标请求的处理信息,并更新所述目标租户的资源配额使用情况。
结合第四方面或以上任一一种可能的实现方式,在第四方面的第三种可能的实现方式中,确定所述已处理请求与所述目标请求归属于同一请求组时,所述第二处理单元具体用于:
根据针对所述已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组。
结合第四方面或以上任一一种可能的实现方式,在第四方面的第四种可能的实现方式中,确定所述已处理请求与所述目标请求归属于同一请求组时,所述第二处理单元具体用于:
若确定所述目标请求携带第二捆绑标识,确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
结合第四方面或以上任一一种可能的实现方式,在第四方面的第五种可能的实现方式中,所述第二处理单元,还用于在确定所述已处理请求与所述目标请求不归属于同一请求组时,选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户;
所述第二发送单元,还用于将所述当前待处理租户对应的第一请求等待队列中最早到达的请求发送给所述处理节点。
第五方面,一种多租户请求处理设备,包括:
第一收发器,用于接收一个请求;
第一处理器,用于确定所述请求的资源需求和所述请求对应的租户;以及
若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;以及
按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;以及
监视所述第一请求等待队列的资源需求之和,若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
结合第五方面,在第五方面的第一种可能的实现方式中,所述第一处理器绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第五方面,在第五方面的第二种可能的实现方式中,确定所述请求的资源需求和所述请求对应的租户时,所述第一处理器具体用于:
解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
结合第五方面,在第五方面的第三种可能的实现方式中,将所述请求放入所述租户对应的第二请求等待队列中之前,所述第一处理器还用于:
确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
结合第五方面或以上任一一种可能的实现方式,在第五方面的第四种可能的实现方式中,按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,所述第一处理器用于:
在将所述请求放入所述租户对应的第二请求等待队列中之后,所述缓冲管理器确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于所述绑定门限,则将所述请求加入所述待加入请求组。
结合第五方面或以上任一一种可能的实现方式,在第五方面的第五种可能的实现方式中,将所述请求加入所述待加入请求组,所述第一处理器用于:
为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
第六方面,一种多租户请求处理设备,包括:
第二收发器,用于接收处理节点发送的空闲资源提示信息;
第二处理器,用于在所述第二收发器接收到空闲资源提示信息时,确定目标租户,所述目标租户为上次已处理请求对应的租户;并确定目标请求,所述目标请求为目标租户对应的第一请求等待队列中最早到达的请求;以及确定所述已处理请求与所述目标请求归属于同一请求组;
所述第二收发器,还用于在所述已处理请求与所述目标请求归属于同一请求组时,将所述目标请求发送至所述处理节点。
结合第六方面,在第六方面的第一种可能的实现方式中,所述同一请求组中包括至少一个请求、且所述至少一个请求分别对应的资源需求之和不大于绑定阈值。
结合第六方面,在第六方面的第二种可能的实现方式中,确定目标租户时,所述第二处理器用于:
根据针对所述已处理请求记录的处理信息中包括的租户ID,确定目标租户;
将所述目标请求发送至所述处理节点之后,所述第二处理器还用于:
将针对所述已处理请求记录的处理信息更新为针对所述目标请求的处理信息,并更新所述目标租户的资源配额使用情况。
结合第六方面或以上任一一种可能的实现方式,在第六方面的第三种可能的实现方式中,确定所述已处理请求与所述目标请求归属于同一请求组,所述第二处理器用于:
根据针对所述已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组。
结合第六方面或以上任一一种可能的实现方式,在第六方面的第四种可能的实现方式中,确定所述已处理请求与所述目标请求归属于同一请求组时,所述第二处理器用于:
若确定所述目标请求携带第二捆绑标识,确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
结合第六方面或以上任一一种可能的实现方式,在第六方面的第五种可能的实现方式中,所述第二处理器还用于:在确定所述已处理请求与所述目标请求不归属于同一请求组时,选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户;
所述第二收发器,还用于将所述当前待处理租户对应的第一请求等待队列中最早到达的请求发送给所述处理节点。
本发明实施例的有益效果为:缓冲管理器在接收到一个请求时,确定请求的资源需求和请求对应的租户;缓冲管理器若确定请求的资源需求大于或等于预设阈值,则将请求放入租户对应的第一请求等待队列中,若确定请求的资源需求小于预设阈值,则将请求放入租户对应的第二请求等待队列中,保证了将短任务存入缓冲区,且确保后续的绑定操作不会造成额外的请求延迟。缓冲管理器按照请求到达第二请求等待队列的先后顺序,将第二请求等待队列中的至少一个请求绑定为一个请求组,即对资源需求较小的请求进行绑定。缓冲管理器监视第一请求等待队列的资源需求之和,若确定第一请求等待队列的资源需求之和低于第一门限且第二请求等待队列非空,则将第二请求等待队列中的请求按照到达第二请求等待队列的先后顺序放入第一请求等待队列中。通过缓冲管理器将放入缓冲区中的请求进行绑定处理,提高了请求处理的效率。
请求调度器在接收到处理节点发送的空闲资源提示信息时,根据上次已处理请求确定目标租户和目标请求,请求调度器若确定已处理请求与目标请求归属于同一请求组,则将目标请求发送至处理节点,因此能够实现同一租户的多个资源需求较小的请求连续处理,减少请求调度的信令开销,避免了短时间内的频繁调度,提高了调度请求的效率。
附图说明
图1(a)为本发明背景技术中单租户SaaS的架构示意图;
图1(b)为本发明背景技术中多租户SaaS的架构示意图;
图2为本发明背景技术中多租户请求调度的网络架构示意图;
图3为本发明实施例中多租户请求调度的网络架构示意图;
图4为本发明实施例中多租户请求处理的概述流程图A;
图5为本发明实施例中第二请求等待队列的结构示意图;
图6为本发明实施例中缓冲管理器针对一个新请求的处理流程图;
图7为本发明实施例中多租户请求处理的概述流程图B;
图8为本发明实施例中缓冲管理器为请求添加第一捆绑标识的示意图;
图9为本发明实施例中缓冲管理器将第二请求等待队列放入对应的第一请求等待队列的示意图;
图10为本发明实施例中缓冲管理器为请求添加第二捆绑标识的示意图;
图11为本发明实施例中多租户请求处理装置A的结构示意图;
图12为本发明实施例中多租户请求处理装置B的结构示意图;
图13为本发明实施例中多租户请求处理设备A的结构示意图;
图14为本发明实施例中多租户请求处理设备B的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图3所示,为本发明实施例的网络结构示意图,本发明实施例的网络结构相对现有的网络结构增加了缓冲管理器和缓冲区两个设备,其中,缓冲区用于存储满足预设条件的租户请求,缓冲管理器用于管理位于缓冲区中的请求。
参阅图4所示,本发明实施例提供一种多租户请求处理方法A,包括:
步骤410:缓冲管理器在接收到一个请求时,确定该请求的资源需求和该请求对应的租户。
具体的,缓冲管理器确定该请求的资源需求和该请求对应的租户,包括;
缓冲管理器解析该请求,确定该请求的请求类型和该请求对应的租户;
缓冲管理器根据该请求的请求类型确定该请求的资源需求,或者根据该请求的请求类型和该请求对应的租户确定该请求的资源需求。
一般情况下,需要租户ID和请求类型共同确定请求的资源需求,因为针对不同租户的相同请求类型的请求,它们的请求资源需求可能不同。如果对请求类型分配了唯一的标识,此时可以不需要租户ID就能够确定请求的资源需求。具体的,可以采用离线建模或者在线估计的方式确定每个请求的资源需求。
步骤420:缓冲管理器若确定该请求的资源需求大于或等于预设阈值,则将该请求放入该租户对应的第一请求等待队列中,若确定该请求的资源需求小于预设阈值,则将该请求放入该租户对应的第二请求等待队列中。
此外,缓冲管理器将该请求放入该租户对应的第二请求等待队列中之前,还需确定第一请求等待队列的资源需求之和大于等于第二门限。这样做是为了确保后续的绑定操作不会造成额外的请求延迟。
这里的第二请求等待队列位于缓冲区中,缓冲区可以是硬盘或者其他存储设备。预设阈值一般较小,是用于指示短任务的阈值。
步骤430:缓冲管理器按照请求到达第二请求等待队列的先后顺序,将第二请求等待队列中的至少一个请求绑定为一个请求组。
其中,每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
具体的,缓冲管理器按照请求到达第二请求等待队列的先后次序,将第二请求等待队列中至少一个请求绑定为一个请求组,可以采用但不限于以下方法:
缓冲管理器在确定该请求的资源需求小于预设阈值,将该请求放入该租户对应的第二请求等待队列中之后,参阅图5所示,以Rt为例,若Rt的资源需求小于预设阈值,将Rt放入对应租户的第二请求等待队列中。
缓冲管理器确定第二请求等待队列中除该请求外最晚到达的请求,以及除该请求外最晚到达的请求归属的请求组作为待加入请求组。
参阅图5所示,除Rt外,最晚到第二请求等待队列的请求为Rt-1,且Rt-1、Rt-2、Rt-3为一个请求组。
具体的,缓冲管理器确定Rt-1所在请求组,解析Rt-2是否具有第一捆绑标识,若解析Rt-2具有第一捆绑标识,则再解析Rt-3,直到确定一个不具有第一捆绑标识的请求Rt-n,说明Rt-1到Rt-n-1归属于同一请求组。
或者,解析Rt-1是否具有第二捆绑标识,若解析Rt-1具有第二捆绑标识,则再解析Rt-2,直到确定一个不具有第一捆绑标识的请求Rt-n,说明Rt-1到Rt-n归属于同一请求组。
进一步地,若缓冲管理器确定该请求的资源需求与待加入请求组的资源需求之和的和不大于绑定门限,则将该请求加入待加入请求组。
若缓冲管理器确定该请求的资源需求与待加入请求组的资源需求之和的和大于绑定门限,则不能将该请求加入待加入请求组。
具体的,根据Rt、Rt-1、Rt-2、Rt-3分别对应的资源需求求和,若求和结果小于或等于绑定门限,则将Rt也加入该请求组,若求和结果大于绑定门限,则不能将Rt加入该请求组中。
此外,缓冲管理器将该请求加入待加入请求组,可以采用但不限于以下两种添加捆绑标识的方法:
第一种方法:缓冲管理器为除该请求外最晚到达的请求添加第一捆绑标识,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组。
第二种方法:缓冲管理器为该请求添加第二捆绑标识,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
步骤440:缓冲管理器监视第一请求等待队列的资源需求之和,若确定第一请求等待队列的资源需求之和低于第一门限且第二请求等待队列非空,则将第二请求等待队列中绑定为请求组后的请求按照到达第二请求等待队列的先后顺序放入第一请求等待队列中。
因此,当第一请求等待队列的资源需求之和低于第一门限时,表明该租户对应的第一请求等待队列中的请求较少时,需要将第二请求等待队列中的请求按到达顺序放入第一请求等待队列中。
这里的缓冲管理器针对每个租户对应的第一请求等待队列进行监视,当确定任一个租户的第一请求等待队列的资源需求之和较低时,将对应该租户的第二请求等待队列中的请求按照到达顺序放入对应的第一请求等待队列。
实施例1:
参阅图6所示,为本发明实施例提供的缓冲管理器针对一个新请求的具体处理过程:
S601:接收一个新请求。
S602:解析新请求,并确定新请求的资源需求、新请求对应租户ID,以及该租户对应的第一请求等待队列的资源需求之和。
S603:判断该新请求是否小于预设阈值,若是执行S604,否则,执行S606。
S604:判断该租户对应的第一请求等待队列的资源需要之和是否大于等于第二门限,若是执行S605,否则执行S606。
S605:将该新请求放入缓冲区中该租户对应的第二请求等待队列中,继续执行S607。
S606:将该新请求放入缓冲区中该租户对应的第一请求等待队列中。
S607:判断第二请求等待队列中是否存在除该新请求外的其他请求,若是,执行S608,否则执行S612。
S608:确定第二请求等待队列中除该新请求外的最晚到达的请求,以及该请求归属的请求组为待加入请求组。
S609:计算新请求的资源需求与待加入请求组的资源需求之和的和。
S610:判断求和结果是否小于或等于绑定门限,若是,执行S611,否则执行S612。
S611:将该新请求加入待加入请求组。
S612:结束该新请求的处理流程。
参阅图7所示,本发明实施例提供一种多租户请求处理方法,包括:
步骤710:请求调度器在接收到处理节点发送的空闲资源提示信息时,确定目标租户。
其中,目标租户为上次已处理请求对应的租户。
步骤720:请求调度器确定目标请求。
其中,目标请求为目标租户对应的第一请求等待队列中最早到达的请求。
具体的,请求调度器确定目标租户,包括:
请求调度器根据针对已处理请求记录的处理信息中包括的租户ID,确定目标租户。
步骤730:请求调度器若确定已处理请求与目标请求归属于同一请求组,则将目标请求发送至处理节点。
其中,同一请求组中包括至少一个请求、且至少一个请求分别对应的资源需求之和不大于绑定阈值。
请求调度器确定已处理请求与目标请求归属于同一请求组,可以采用但不限于以下两种方法:
第一种方法:请求调度器根据针对已处理请求记录的处理信息,若确定已处理请求添加有第一捆绑标识,则确定已处理请求与目标请求归属于同一请求组。
其中,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组。
第二种方法:请求调度器若确定目标请求携带第二捆绑标识,确定已处理请求与目标请求归属于同一请求组。
其中,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
因此,采用本发明实施例提供的方法,可以将同一请求组中的请求连续发送给处理节点,期间不再采用现有的请求准入控制算法。
进一步地,请求调度器若确定已处理请求与目标请求不归属于同一请求组,采用现有的请求准入控制算法选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户,并将当前待处理租户对应的第一请求等待队列中最早到达的请求发送给处理节点。
此外,当请求调度器将目标请求发送至处理节点之后,请求调度器将针对已处理请求记录的处理信息更新为针对目标请求的处理信息,并更新目标租户的资源配额使用情况。
实施例2为请求调度器针对采用第一捆绑标识进行捆绑的请求的处理过程。
其中,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组。
表2
参数名称 设定值
第二门限 5秒
预设阈值 5毫秒
绑定门限 5毫秒
第一门限 3秒
参阅表2所示,为各类阈值或门限的参数值。假设缓冲管理器接收到一个请求Rt,解析请求Rt,确定请求对应的租户ID为“A”,请求类型为“GET”,根据表3可知,请求类型为“GET”的请求的资源需求为1毫秒,小于预设阈值5毫秒,则进一步获取租户A的第一请求等待队列的资源需求之和,假设租户A的第一请求等待队列的资源需求之和为6秒,大于第二门限5秒,则确定将Rt放入缓冲区中租户A的第二请求等待队列中。
表3
租户ID 请求类型 资源需求
A GET 1毫秒
A POST 5毫秒
缓冲管理器将Rt放入缓冲区中租户A的第二请求等待队列后,确定第二请求等待队列还包括:{Rt-1,Rt-2,Rt-3,Rt-4},如图8所示。
缓冲管理器进一步确定第二请求等待队列中的除Rt外最晚到达的请求Rt-1,以及确定Rt-1所在请求组为待加入请求组{Rt-1,Rt-2}。具体的,缓冲管理器确定Rt-1所在请求组,具体方式为:解析Rt-2是否具有第一捆绑标识(如图8所示)。若解析Rt-2具有第一捆绑标识,则再检查Rt-3,直到确定一个不具有第一捆绑标识的请求Rt-n,说明Rt-1到Rt-n-1归属于同一请求组。由图8可知,n=3,Rt-1所在请求组包括{Rt-1,Rt-2},作为待加入请求组。
缓冲管理器计算Rt的资源需求和待加入请求组的资源需要之和的和,1+2+1=4(毫秒),小于绑定门限5毫秒,则将Rt加入待加入请求组,并为Rt-1添加第一捆绑标识。
当缓冲管理器监视到租户A的第一请求等待队列的资源需求之和为2.998秒时,低于第一门限,将租户A在缓冲区中的第二请求等待队列中的请求,{Rt,Rt-1,Rt-2,Rt-3,Rt-4},按请求到达顺序移至租户A的第一请求等待队列,如图9所示。
请求调度器针对上次已处理请求记录两个变量,一个是目标租户ID,一个是连续执行标志位。其中,请求调度器将上次已处理请求对应的租户ID记录为目标租户ID。若上次已处理请求携带第一捆绑标识,请求调度器将连续执行标识位置为True,若未携带第一捆绑标识则将连续执行标志位置为False。
请求调度器在接收到处理节点发送的空闲资源提示信息时,根据自身记录的目标租户ID确定目标租户。
假设请求调度器的上次已处理的请求为租户A的请求Rt-4,则请求调度器记录目标租户ID为A,Rt-4携带第一捆绑标识,则将连续执行标识位置为True。
请求调度器根据目标租户ID,确定租户A当前的第一请求等待队列中最早到达的请求为Rt-3,即目标请求为Rt-3
请求调度器解析连续执行标识位为True,表明Rt-3与Rt-4属于同一请求组,需要连续处理,将Rt-3发送给处理节点。
最后,请求调度器将目标租户ID为A,因为Rt-3没有第一捆绑标识,将连续执行标识位置为False,并更新租户A的资源配额使用情况。
由图8可知,由于Rt-2和Rt-3不属于同一请求组,所以当下一次处理节点有空闲资源时,请求调度器需要调用请求准入算法选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户,并将当前待处理租户对应的第一请求等待队列中最早到达的请求发送给处理节点。
实施例3为请求调度器针对采用第二捆绑标识进行捆绑的请求的处理过程。
其中,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
这里仍沿用表2中的参数。参阅图10所示,缓冲管理器将Rt放入缓冲区中租户A的第二请求等待队列后,确定第二请求等待队列还包括:{Rt-1,Rt-2,Rt-3,Rt-4}。
缓冲管理器进一步确定第二请求等待队列中的除Rt外最晚到达的请求Rt-1,以及确定Rt-1所在请求组为待加入请求组{Rt-1,Rt-2}。具体的,缓冲管理器确定Rt-1所在请求组,具体方式为:解析Rt-1是否具有第二捆绑标识(如图10所示)。若解析Rt-1具有第二捆绑标识,则再检查Rt-2,直到确定一个不具有第一捆绑标识的请求Rt-n,说明Rt-1到Rt-n归属于同一请求组。由图10可知,n=2,Rt-1所在请求组包括{Rt-1,Rt-2},作为待加入请求组。
缓冲管理器计算Rt的资源需求和待加入请求组的资源需要之和的和,1+2+1=4(毫秒),小于绑定门限5毫秒,则将Rt加入待加入请求组,并为Rt添加第二捆绑标识。
请求调度器针对上次已处理请求记录一个变量,即目标租户ID。其中,请求调度器将上次已处理请求对应的租户ID记录为目标租户ID。请求调度器在接收到处理节点发送的空闲资源提示信息时,根据自身记录的目标租户ID确定目标租户。
假设请求调度器的上次已处理的请求为租户A的请求Rt-4,则请求调度器记录目标租户ID为A。
请求调度器根据目标租户ID,确定租户A当前的第一请求等待队列中最早到达的请求为Rt-3,即目标请求为Rt-3
请求调度器解析Rt-3携带第二捆绑标识,表明Rt-3与Rt-4属于同一请求组,需要连续处理,将Rt-3发送给处理节点。
最后,请求调度器将目标租户ID为A,并更新租户A的资源配额使用情况。
由图10可知,由于Rt-2和Rt-3不属于同一请求组,所以当下一次处理节点有空闲资源时,请求调度器需要调用请求准入算法选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户,并将当前待处理租户对应的第一请求等待队列中最早到达的请求发送给处理节点。
参阅图11所示,本发明实施例提供一种多租户请求处理装置A,包括:
第一接收单元1101,用于接收一个请求;
第一处理单元1102,用于确定请求的资源需求和请求对应的租户;若确定请求的资源需求大于或等于预设阈值,则将请求放入租户对应的第一请求等待队列中,若确定请求的资源需求小于预设阈值,则将请求放入租户对应的第二请求等待队列中;
绑定单元1103,用于按照请求到达第二请求等待队列的先后顺序,将第二请求等待队列中的至少一个请求绑定为一个请求组;
监视单元1104,用于监视第一请求等待队列的资源需求之和;
第一队列调度单元1105,用于若确定第一请求等待队列的资源需求之和低于第一门限且第二请求等待队列非空,则将第二请求等待队列中绑定为请求组后的请求按照到达第二请求等待队列的先后顺序放入第一请求等待队列中。
可选的,绑定单元1103绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
可选的,确定请求的资源需求和请求对应的租户时,第一接收单元1101,具体用于;
解析请求,确定请求的请求类型和请求对应的租户;
根据请求的请求类型确定请求的资源需求,或者根据请求的请求类型和请求对应的租户确定请求的资源需求。
可选的,将请求放入租户对应的第二请求等待队列中之前,第一处理单元1102还用于:
确定第一请求等待队列的资源需求之和大于等于第二门限,第一门限小于第二门限。
可选的,按照请求到达第二请求等待队列的先后次序,将第二请求等待队列中至少一个请求绑定为一个请求组,绑定单元1103具体用于:
在将请求放入租户对应的第二请求等待队列中之后,确定第二请求等待队列中除请求外最晚到达的请求,以及除请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定请求的资源需求与待加入请求组的资源需求之和的和不大于绑定门限,则将请求加入待加入请求组。
可选的,将请求加入待加入请求组时,绑定单元1103具体用于:
为除请求外最晚到达的请求添加第一捆绑标识,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为请求添加第二捆绑标识,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
参阅图12所示,本发明实施例提供一种多租户请求处理装置B,包括:
第二接收单元1201,用于在接收到处理节点发送的空闲资源提示信息时,确定目标租户,目标租户为上次已处理请求对应的租户;
第二处理单元1202,用于在第二接收单元接收到空闲资源提示信息时,确定目标租户,目标租户为上次已处理请求对应的租户,并确定目标请求,目标请求为目标租户对应的第一请求等待队列中最早到达的请求,并确定所述已处理请求与所述目标请求归属于同一请求组;
第二发送单元1203,用于在已处理请求与目标请求归属于同一请求组时,则将目标请求发送至处理节点。
可选的,同一请求组中包括至少一个请求、且至少一个请求分别对应的资源需求之和不大于绑定阈值。
可选的,确定目标租户时,第二接收单元1201,具体用于:
根据针对已处理请求记录的处理信息中包括的租户ID,确定目标租户;
将目标请求发送至处理节点之后,装置还包括:
记录单元1204,用于将针对已处理请求记录的处理信息更新为针对目标请求的处理信息,并更新目标租户的资源配额使用情况。
可选的,确定已处理请求与目标请求归属于同一请求组时,第二处理单元1202具体用于:
根据针对已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定已处理请求与目标请求归属于同一请求组;
其中,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组。
可选的,确定已处理请求与目标请求归属于同一请求组时,第二处理单元1202具体用于:
若确定目标请求携带第二捆绑标识,确定已处理请求与目标请求归属于同一请求组;
其中,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
可选的,第二处理单元1202,还用于在确定已处理请求与目标请求不归属于同一请求组时,选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户;
第二发送单元1203,还用于将当前待处理租户对应的第一请求等待队列中最早到达的请求发送给处理节点。
参阅图13所示,本发明实施例提供一种多租户请求处理设备A,该设备包括第一收发器1301、第一处理器1302、第一存储器1303。第一收发器1301、第一处理器1302以及第一存储器1303相互连接。本发明实施例中不限定上述部件之间的具体连接介质。本发明实施例在图13中以第一存储器1303、第一处理器1302以及第一收发器1301之间通过总线1304连接,总线在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中第一存储器1303,用于存储第一处理器1302执行的程序代码,可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-accessmemory,缩写:RAM);第一存储器1303也可以是非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)、或者第一存储器1303是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。第一存储器1303可以是上述存储器的组合。
具体的,第一收发器1301,用于接收一个请求;
第一处理器1302,用于确定请求的资源需求和请求对应的租户;以及
若确定请求的资源需求大于或等于预设阈值,则将请求放入租户对应的第一请求等待队列中,若确定请求的资源需求小于预设阈值,则将请求放入租户对应的第二请求等待队列中;以及
按照请求到达第二请求等待队列的先后顺序,将第二请求等待队列中的至少一个请求绑定为一个请求组;以及
监视第一请求等待队列的资源需求之和,若确定第一请求等待队列的资源需求之和低于第一门限且第二请求等待队列非空,则将第二请求等待队列中的请求按照到达第二请求等待队列的先后顺序放入第一请求等待队列中。
可选的,第一处理器1302绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
可选的,确定请求的资源需求和请求对应的租户时,第一处理器1302具体用于:
解析请求,确定请求的请求类型和请求对应的租户;
根据请求的请求类型确定请求的资源需求,或者根据请求的请求类型和请求对应的租户确定请求的资源需求。
可选的,将请求放入租户对应的第二请求等待队列中之前,第一处理器1302还用于:
确定第一请求等待队列的资源需求之和大于等于第二门限,第一门限小于第二门限。
可选的,按照请求到达第二请求等待队列的先后次序,将第二请求等待队列中至少一个请求绑定为一个请求组,第一处理器1302用于:
在将请求放入租户对应的第二请求等待队列中之后,缓冲管理器确定第二请求等待队列中除请求外最晚到达的请求,以及将除请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定请求的资源需求与待加入请求组的资源需求之和的和不大于绑定门限,则将请求加入待加入请求组。
可选的,将请求加入待加入请求组,第一处理器1302用于:
为除请求外最晚到达的请求添加第一捆绑标识,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为请求添加第二捆绑标识,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
参阅图14所示,本发明实施例提供一种多租户请求处理设备B,该设备包括第二收发器1401、第二处理器1402、第二存储器1403。第二收发器1401、第二处理器1402以及第二存储器1403相互连接。本发明实施例中不限定上述部件之间的具体连接介质。本发明实施例在图14中以第二存储器1403、第二处理器1402以及第二收发器1401之间通过总线1404连接,总线在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中第二存储器1403,用于存储第二处理器1402执行的程序代码,可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-accessmemory,缩写:RAM);第二存储器1403也可以是非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)、或者第二存储器1403是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。第二存储器1403可以是上述存储器的组合。
第二收发器1401,用于接收处理节点发送的空闲资源提示信息;
第二处理器1402,用于在第二收发器1401接收到空闲资源提示信息时,确定目标租户,目标租户为上次已处理请求对应的租户;并确定目标请求,目标请求为目标租户对应的第一请求等待队列中最早到达的请求;以及确定已处理请求与目标请求归属于同一请求组;
第二收发器1401,还用于在已处理请求与目标请求归属于同一请求组时,将目标请求发送至处理节点。
可选的,同一请求组中包括至少一个请求、且至少一个请求分别对应的资源需求之和不大于绑定阈值。
可选的,确定目标租户时,第二处理器1402用于:
根据针对已处理请求记录的处理信息中包括的租户ID,确定目标租户;
将目标请求发送至处理节点之后,第二处理器1402还用于:
将针对已处理请求记录的处理信息更新为针对目标请求的处理信息,并更新目标租户的资源配额使用情况。
可选的,确定已处理请求与目标请求归属于同一请求组,第二处理器1402用于:
根据针对已处理请求记录的处理信息中,若确定所述已处理请求添加有第一捆绑标识,则确定已处理请求与目标请求归属于同一请求组;
其中,第一捆绑标识用于指示添加有第一捆绑标识的请求和与添加有第一捆绑标识的请求相邻的下一请求归属于同一请求组。
可选的,确定已处理请求与目标请求归属于同一请求组时,第二处理器1402用于:
若确定目标请求携带第二捆绑标识,确定已处理请求与目标请求归属于同一请求组;
其中,第二捆绑标识用于指示添加有第二捆绑标识的请求和与添加有第二捆绑标识的请求相邻的前一请求归属于同一请求组。
可选的,第二处理器1402还用于:在确定已处理请求与目标请求不归属于同一请求组,选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户;
第二收发器1401,还用于将当前待处理租户对应的第一请求等待队列中最早到达的请求发送给处理节点。
综上所述,缓冲管理器在接收到一个请求时,确定请求的资源需求和请求对应的租户;缓冲管理器若确定请求的资源需求大于或等于预设阈值,则将请求放入租户对应的第一请求等待队列中,若确定请求的资源需求小于预设阈值,则将请求放入租户对应的第二请求等待队列中,保证了将短任务存入缓冲区,且确保后续的绑定操作不会造成额外的请求延迟。缓冲管理器按照请求到达第二请求等待队列的先后顺序,将第二请求等待队列中的至少一个请求绑定为一个请求组,即对资源需求较小的请求进行绑定。缓冲管理器监视第一请求等待队列的资源需求之和,若确定第一请求等待队列的资源需求之和低于第一门限且第二请求等待队列非空,则将第二请求等待队列中的请求按照到达第二请求等待队列的先后顺序放入第一请求等待队列中。通过缓冲管理器将放入缓冲区中的请求进行绑定处理,提高了请求处理的效率。
请求调度器在接收到处理节点发送的空闲资源提示信息时,根据上次已处理请求确定目标租户和目标请求,请求调度器若确定已处理请求与目标请求归属于同一请求组,则将目标请求发送至处理节点,因此能够实现同一租户的多个资源需求较小的请求连续处理,减少请求调度的信令开销,避免了短时间内的频繁调度,提高了调度请求的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (28)

1.一种多租户请求处理方法,其特征在于,包括:
缓冲管理器在接收到一个请求时,确定所述请求的资源需求和所述请求对应的租户;
所述缓冲管理器若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;
所述缓冲管理器按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;
所述缓冲管理器监视所述第一请求等待队列的资源需求之和,若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中绑定为请求组后的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
2.如权利要求1所述的方法,其特征在于,每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
3.如权利要求1所述的方法,其特征在于,缓冲管理器确定所述请求的资源需求和所述请求对应的租户,包括:
所述缓冲管理器解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
所述缓冲管理器根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
4.如权利要求1所述的方法,其特征在于,所述缓冲管理器将所述请求放入所述租户对应的第二请求等待队列中之前,还包括:
所述缓冲管理器确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
5.如权利要求2所述的方法,其特征在于,所述缓冲管理器按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,包括:
所述缓冲管理器在将所述请求放入所述租户对应的第二请求等待队列中之后,所述缓冲管理器确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若所述缓冲管理器确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于绑定门限,则将所述请求加入所述待加入请求组。
6.如权利要求5所述的方法,其特征在于,所述缓冲管理器将所述请求加入所述待加入请求组,包括:
所述缓冲管理器为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
所述缓冲管理器为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
7.一种多租户请求处理方法,其特征在于,包括:
请求调度器在接收到处理节点发送的空闲资源提示信息时,确定目标租户,所述目标租户为上次已处理请求对应的租户;
所述请求调度器确定目标请求,所述目标请求为目标租户对应的第一请求等待队列中最早到达的请求;
所述请求调度器若确定所述已处理请求与所述目标请求归属于同一请求组,则将所述目标请求发送至所述处理节点;所述同一请求组中包括至少一个请求、且所述至少一个请求分别对应的资源需求之和不大于绑定阈值。
8.如权利要求7所述的方法,其特征在于,所述请求调度器确定目标租户,包括:
所述请求调度器根据针对所述已处理请求记录的处理信息中包括的租户ID,确定目标租户;
所述请求调度器将所述目标请求发送至所述处理节点之后,还包括:
所述请求调度器将针对所述已处理请求记录的处理信息更新为针对所述目标请求的处理信息,并更新所述目标租户的资源配额使用情况。
9.如权利要求7或8所述的方法,其特征在于,所述请求调度器确定所述已处理请求与所述目标请求归属于同一请求组,包括:
所述请求调度器根据针对所述已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组。
10.如权利要求7或8所述的方法,其特征在于,所述请求调度器确定所述已处理请求与所述目标请求归属于同一请求组,包括:
所述请求调度器若确定所述目标请求携带第二捆绑标识,确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
11.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述请求调度器若确定所述已处理请求与所述目标请求不归属于同一请求组,所述请求调度器选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户,并
将所述当前待处理租户对应的第一请求等待队列中最早到达的请求发送给所述处理节点。
12.一种多租户请求处理装置,其特征在于,包括:
第一接收单元,用于接收一个请求;
第一处理单元,用于确定所述请求的资源需求和所述请求对应的租户;若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;
绑定单元,用于按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;
监视单元,用于监视所述第一请求等待队列的资源需求之和;
第一队列调度单元,用于若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中绑定为请求组后的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
13.如权利要求12所述的装置,其特征在于,所述绑定单元绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
14.如权利要求12所述的装置,其特征在于,确定所述请求的资源需求和所述请求对应的租户时,所述第一接收单元,具体用于;
解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
15.如权利要求12所述的装置,其特征在于,将所述请求放入所述租户对应的第二请求等待队列中之前,所述第一处理单元还用于:
确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
16.如权利要求13所述的装置,其特征在于,按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,所述绑定单元具体用于:
在将所述请求放入所述租户对应的第二请求等待队列中之后,确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于绑定门限,则将所述请求加入所述待加入请求组。
17.如权利要求16所述的装置,其特征在于,将所述请求加入所述待加入请求组时,所述绑定单元具体用于:
为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
18.一种多租户请求处理装置,其特征在于,包括:
第二接收单元,用于接收处理节点发送的空闲资源提示信息;
第二处理单元,用于在所述第二接收单元接收到空闲资源提示信息时,确定目标租户,所述目标租户为上次已处理请求对应的租户,并确定目标请求,所述目标请求为目标租户对应的第一请求等待队列中最早到达的请求,并确定所述已处理请求与所述目标请求归属于同一请求组;
第二发送单元,用于在所述已处理请求与所述目标请求归属于同一请求组时,则将所述目标请求发送至所述处理节点;所述同一请求组中包括至少一个请求、且所述至少一个请求分别对应的资源需求之和不大于绑定阈值。
19.如权利要求18所述的装置,其特征在于,确定目标租户时,所述第二接收单元,具体用于:
根据针对所述已处理请求记录的处理信息中包括的租户ID,确定目标租户;
将所述目标请求发送至所述处理节点之后,所述装置还包括:
记录单元,用于将针对所述已处理请求记录的处理信息更新为针对所述目标请求的处理信息,并更新所述目标租户的资源配额使用情况。
20.如权利要求18或19所述的装置,其特征在于,确定所述已处理请求与所述目标请求归属于同一请求组时,所述第二处理单元具体用于:
根据针对所述已处理请求记录的处理信息,若确定所述已处理请求添加有第一捆绑标识,则确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组。
21.如权利要求18或19所述的装置,其特征在于,确定所述已处理请求与所述目标请求归属于同一请求组时,所述第二处理单元具体用于:
若确定所述目标请求携带第二捆绑标识,确定所述已处理请求与所述目标请求归属于同一请求组;
其中,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
22.如权利要求18所述的装置,其特征在于,所述第二处理单元,还用于在确定所述已处理请求与所述目标请求不归属于同一请求组时,选择第一请求等待队列非空的租户中资源配额使用率最低的一个租户作为当前待处理租户;
所述第二发送单元,还用于将所述当前待处理租户对应的第一请求等待队列中最早到达的请求发送给所述处理节点。
23.一种多租户请求处理设备,其特征在于,包括:
第一收发器,用于接收一个请求;
第一处理器,用于确定所述请求的资源需求和所述请求对应的租户;以及
若确定所述请求的资源需求大于或等于预设阈值,则将所述请求放入所述租户对应的第一请求等待队列中,若确定所述请求的资源需求小于预设阈值,则将所述请求放入所述租户对应的第二请求等待队列中;以及
按照请求到达所述第二请求等待队列的先后顺序,将所述第二请求等待队列中的至少一个请求绑定为一个请求组;以及
监视所述第一请求等待队列的资源需求之和,若确定所述第一请求等待队列的资源需求之和低于第一门限且所述第二请求等待队列非空,则将所述第二请求等待队列中的请求按照到达所述第二请求等待队列的先后顺序放入所述第一请求等待队列中。
24.如权利要求23所述的设备,其特征在于,所述第一处理器绑定的每个请求组中包括的至少一个请求分别对应的资源需求之和不大于绑定阈值。
25.如权利要求23所述的设备,其特征在于,确定所述请求的资源需求和所述请求对应的租户时,所述第一处理器具体用于:
解析所述请求,确定所述请求的请求类型和所述请求对应的租户;
根据所述请求的请求类型确定所述请求的资源需求,或者根据所述请求的请求类型和所述请求对应的租户确定所述请求的资源需求。
26.如权利要求23所述的设备,其特征在于,将所述请求放入所述租户对应的第二请求等待队列中之前,所述第一处理器还用于:
确定所述第一请求等待队列的资源需求之和大于等于第二门限,所述第一门限小于所述第二门限。
27.如权利要求24所述的设备,其特征在于,按照请求到达所述第二请求等待队列的先后次序,将所述第二请求等待队列中至少一个请求绑定为一个请求组,所述第一处理器用于:
在将所述请求放入所述租户对应的第二请求等待队列中之后,确定所述第二请求等待队列中除所述请求外最晚到达的请求,以及将除所述请求外最晚到达的请求归属的请求组作为待加入请求组;
若确定所述请求的资源需求与所述待加入请求组的资源需求之和的和不大于绑定门限,则将所述请求加入所述待加入请求组。
28.如权利要求27所述的设备,其特征在于,将所述请求加入所述待加入请求组,所述第一处理器用于:
为除所述请求外最晚到达的请求添加第一捆绑标识,所述第一捆绑标识用于指示添加有所述第一捆绑标识的请求和与添加有所述第一捆绑标识的请求相邻的下一请求归属于同一请求组;或者
为所述请求添加第二捆绑标识,所述第二捆绑标识用于指示添加有所述第二捆绑标识的请求和与添加有所述第二捆绑标识的请求相邻的前一请求归属于同一请求组。
CN201510956621.1A 2015-12-18 2015-12-18 一种多租户请求处理方法、装置及设备 Active CN106897124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510956621.1A CN106897124B (zh) 2015-12-18 2015-12-18 一种多租户请求处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510956621.1A CN106897124B (zh) 2015-12-18 2015-12-18 一种多租户请求处理方法、装置及设备

Publications (2)

Publication Number Publication Date
CN106897124A CN106897124A (zh) 2017-06-27
CN106897124B true CN106897124B (zh) 2020-03-10

Family

ID=59189513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510956621.1A Active CN106897124B (zh) 2015-12-18 2015-12-18 一种多租户请求处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN106897124B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860336B2 (en) * 2017-10-27 2020-12-08 Google Llc Managing multi-single-tenant SaaS services
CN108270693A (zh) * 2017-12-29 2018-07-10 珠海国芯云科技有限公司 网站访问的自适应优化疏导方法及装置
CN113190529B (zh) * 2021-04-29 2023-09-19 电子科技大学 一种适用MongoDB数据库的多租户数据共享存储系统
CN113923130B (zh) * 2021-09-06 2024-03-08 特赞(上海)信息科技有限公司 多租户的开放接口资源配置方法、装置、终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266093A (ja) * 2008-04-28 2009-11-12 Nippon Telegr & Teleph Corp <Ntt> 輻輳制御方法、輻輳制御システム、及び、輻輳制御プログラム
CN104703284A (zh) * 2013-12-09 2015-06-10 普天信息技术研究院有限公司 一种资源分配的方法
US9158591B2 (en) * 2012-10-24 2015-10-13 Metric Holdings, Llc System and method for controlled sharing of consumable resources in a computer cluster
CN105072182A (zh) * 2015-08-10 2015-11-18 北京佳讯飞鸿电气股份有限公司 一种负载均衡方法、负载均衡器和用户终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009266093A (ja) * 2008-04-28 2009-11-12 Nippon Telegr & Teleph Corp <Ntt> 輻輳制御方法、輻輳制御システム、及び、輻輳制御プログラム
US9158591B2 (en) * 2012-10-24 2015-10-13 Metric Holdings, Llc System and method for controlled sharing of consumable resources in a computer cluster
CN104703284A (zh) * 2013-12-09 2015-06-10 普天信息技术研究院有限公司 一种资源分配的方法
CN105072182A (zh) * 2015-08-10 2015-11-18 北京佳讯飞鸿电气股份有限公司 一种负载均衡方法、负载均衡器和用户终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SaaS模式下的个性化决策服务研究;余银山,;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20111215(第12期);I139-202 *
多租户应用的性能管理关键问题研究;林海略,等;;《计算机学报》;20101031;第33卷(第10期);1881-1815 *

Also Published As

Publication number Publication date
CN106897124A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN106897124B (zh) 一种多租户请求处理方法、装置及设备
US20200364608A1 (en) Communicating in a federated learning environment
US10567196B2 (en) Decision coordination method, execution apparatus, and decision coordinator
US20190182168A1 (en) Dynamic throttling thresholds
CN106326002B (zh) 资源调度方法、装置及设备
US20080263553A1 (en) Dynamic Service Level Manager for Image Pools
CN110659123B (zh) 一种基于消息的分布式任务分发调度方法及装置
CN107005452B (zh) 一种网络功能虚拟化资源处理方法及虚拟网络功能管理器
Cerroni et al. Live migration of virtual network functions in cloud-based edge networks
Moschakis et al. Towards scheduling for Internet‐of‐Things applications on clouds: a simulated annealing approach
CN103747059A (zh) 一种面向多租户的云计算服务器集群网络保障方法和系统
CN108512672B (zh) 业务编排方法、业务管理方法及装置
US8458379B2 (en) Information processing program, method, and transfer processing device
US20180349236A1 (en) Method for transmitting request message and apparatus
Yi et al. A generalized VNF sharing approach for service scheduling
US10216593B2 (en) Distributed processing system for use in application migration
US20170180465A1 (en) Method, information processing apparatuses and non-transitory computer-readable storage medium
CN117112199A (zh) 一种多租户资源调度方法、装置及存储介质
US10067778B2 (en) Management system, recording medium and method for managing virtual machines
CN115331349A (zh) 银行网点的排队方法及装置
CN113535358A (zh) 任务处理方法及装置
CN111258729B (zh) 基于Redis的任务分配方法、装置、计算机设备及存储介质
JP2015153330A (ja) 仮想マシン配置システム及び方法
CN110266747B (zh) 业务请求的机房转接方法和装置
CN110659849B (zh) 业务覆盖区域的确定方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200205

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 210012 HUAWEI Nanjing base, 101 software Avenue, Yuhuatai District, Jiangsu, Nanjing

Applicant before: Huawei Technologies Co.,Ltd.

GR01 Patent grant
GR01 Patent grant