CN105934928A - 在分布式资源系统中用户请求的调度方法和装置 - Google Patents
在分布式资源系统中用户请求的调度方法和装置 Download PDFInfo
- Publication number
- CN105934928A CN105934928A CN201480001882.1A CN201480001882A CN105934928A CN 105934928 A CN105934928 A CN 105934928A CN 201480001882 A CN201480001882 A CN 201480001882A CN 105934928 A CN105934928 A CN 105934928A
- Authority
- CN
- China
- Prior art keywords
- user
- scheduler
- request
- resource
- consumed
- 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.)
- Granted
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/60—Queue scheduling implementing hierarchical scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/623—Weighted service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的分布式资源系统中用户请求的调度方法、装置及系统,在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,不需要依赖用户代理,即可对用户z请求进行调度,并且Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。
Description
本发明涉及信息技术领域,尤其涉及一种在分布式资源系统中用户请求的调度方法和装置。
在分布式资源系统中,存在多个资源提供实体。资源,包括中央处理单元(Central Processing Unit,CPU)计算能力、硬盘空间、内存和网络带宽等,资源可以是物理资源也可以是虚拟资源。资源提供实体根据用户请求提供资源时,用户之间会发生资源竞争,因此对用户请求进行调度,保证用户性能变得非常重要。
如图1所示的一种用户请求调度方案,在图1所示的分布式资源系统为分布式文件系统,包括用户代理A、用户代理B、调度器A、调度器B、资源提供实体A和资源提供实体B,并且用户代理A和用户代理B之间不通信。用户代理A根据用户A请求查询分布式文件系统元数据服务器,用户代理A根据查询到的信息,判断将用户A请求发送到图1所示的哪一个调度器;同理,用户代理A根据用户B请求查询分布式文件系统元数据服务器,用户代理B根据查询到的信息,判断将用户B请求发送到图1所示的哪一个调度器。资源提供实体A和资源提供实体B为文件系统。其中,资源提供实体A用于提供资源A,资源A具体为提供每秒钟进行输入输出操作数量(Input/Output Operations Per Second,IOPS)的能力,资源提供实体B用于提供资源B,资源B具体为提供IOPS的能力。用户A和用户B分别向分布式资源系统中发送请求。例如,用户A通过用户代理A分别向资源提供实体A和资源提供实体B发送用户A请求,则资源提供实体A为用户A请求提供资源A,资源提供实体B为用户A请求提供资源B。用户B通过用户代理B分别向资源提供实体A和资源提供实体B发送用户B请求,资源提供实体A和
资源提供实体B为用户B请求提供资源。用户A向资源提供实体A和资源提供实体B分别发送用户A请求,在图1的实施方式中,资源提供实体A和资源提供实体B向用户A提供的资源均为IOPS能力。同理,资源提供实体A和资源提供实体B向用户B提供的资源也均为IOPS能力。
图1所示的分布式资源系统中,为用户A和用户B分别分配资源权重,如用户A的资源权重为2,用户B的资源权重为1。用户的资源权重表示分布式资源系统为用户分配的资源份额。用户代理A统计用户A发送到调度器A和调度器B的用户A请求数量,用户代理B统计用户B发送到调度器A和调度器B的用户B请求数量。调度器A根据用户A的资源权重、用户代理A发送到调度器A和调度器B的用户A请求的数量为用户A请求从资源提供实体A分配资源。调度器A根据用户B的资源权重、用户代理B发送到调度器A和调度器B的用户B请求的数量为用户B请求从资源提供实体A分配资源。同理,调度器B根据用户A的资源权重、用户代理A发送到调度器A和调度器B的用户A请求的数量为用户A请求从资源提供实体B分配资源。调度器B根据用户B的资源权重、用户代理B发送到调度器A和调度器B的用户B请求的数量为用户B请求从资源提供实体B分配资源。
由于用户代理A和用户代理B只适用于分布式文件系统场景,因此,图1所示架构中的方案不能够广泛应用于分布式资源系统中调度用户请求的场景。
发明内容
第一方面,本发明实施例提供了一种分布式资源系统中用户请求的调度方法,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;所述方法包括:
在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;
Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
结合本发明实施例第一方面,在第一种可能的实施方式中,Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Pi z,d进行调度,具体包括:
Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
结合本发明实施例第一方面的第一种可能的实施方式,在第二种可能的实施方式中,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
结合本发明实施例第一方面的第一种可能的实施方式,在第三种可能的实施方式中,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
第二方面,本发明实施例提供了调度器Sd,所述调度器Sd应用于
分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括中央处理单元和存储器,所述中央处理单元执行所述存储器中的可执行指令以执行本发明实施例第一方面至第一方面的第三种可能实施方式中的任一种方法。
第三方面,本发明实施例提供了调度器Sd,所述调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括获取单元和调度单元;其中,
所述获取单元用于在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;
所述调度单元用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机指令用于执行分布式资源系统中的用户请求的调度,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Cy与任一Sx通信;
调度器Sd执行所述计算机指令用于执行本发明实施例第一方面至第一方面的第三种可能实施方式中的任一种方法;其中,d为x中的一个。
第五方面,本发明实施例提供了一种分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;
用户z的协调器Gk用于在Tn+1周期,向调度器Sd提供在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;
所述调度器Sd用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
第六方面,本发明实施例提供了一种分布式资源系统中资源调度方法,所述分布式资源系统包括多个调度器,
所述多个调度器中的第一调度器从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;
所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
结合第六方面,在第一种可能的实施方式中,所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户
的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度,具体包括:
所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。
第七方面,本发明实施例提供了一种分布式资源系统,所述分布式资源系统包括多个调度器,其中,所述多个调度器中的第一调度器包括获取单元和调度单元;
所述获取单元用于从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;
所述调度单元用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
结合第七方面,在第一种可能的实施方式中,所述调度单元具体用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求
进行排序。
本发明实施例提供的分布式资源系统中用户请求的调度方法、装置及系统,在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,不需要依赖用户代理,即可对用户z请求进行调度,并且Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其他的附图。
图1为现有技术分布式资源调度系统示意图;
图2为本发明实施例分布式资源系统示意图;
图3a为调度器A、资源提供实体A和协调器A关系图;
图3b为调度器A、资源提供实体A和协调器A关系图;
图4为本发明实施例方法示意图;
图5为本发明实施例分布式资源系统状态示意图;
图6为调度队列中用户请求状态示意图;
图7为调度队列中用户请求状态示意图;
图8为本发明实施例分布式资源系统状态示意图;
图9为调度队列中用户请求状态示意图;
图10为调度队列中用户请求状态示意图;
图11为本发明实施例分布式资源系统架构图;
图12为本发明实施例调度器结构示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明提供的实施例所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,本发明实施例提供了一种分布式资源系统。分布式资源系统,包括调度器A、调度器B、资源提供实体A、资源提供实体B、协调器A和协调器B。调度器A与资源提供实体A通信,用于调度发送到资源提供实体A的用户请求。调度器B与资源提供实体B通信,用于调度发送到资源提供实体B的用户请求。协调器A分别与调度器A和调度器B通信,协调器B与分别与调度器A和调度器B通信。本发明实施例中的资源可以为物理资源,也可以为虚拟资源,如CPU计算能力、硬盘空间、内存和网络带宽等。本发明实施例中的用户,可以指客户端,虚拟机、应用进程等,本发明实施例不作具体限定。资源提供实体为用户A请求分配的资源和为用户B请求分配的资源为同一类型的资源。资源提供实体A与资源提供实体B为用户A请求提供的资源与资源提供实体A与资源提供实体B为用户B提供的资源为同一类型的资源。本发明实施例中,资源提供实体为用户请求分配的资源和资源提供实体为用户请求提供资源具有相同的含义,还可以表述为用户请求消耗的资源提供实体的资源或者用户请求消耗的资源提供实体提供的资源。用户请求消耗的资源提供实体提供的资源是指用户请求需要消耗的资源,具体包括已经消耗的资源,如果用户请求已经由资源提供实体处理,也包括调度器接收用户请求后,还未经资源提供实体处理的用户请求需要消耗的资源。其中一种实现方式,调度器接收到用户请求,即可计算出用户请求需要消耗的资源提供实体提供的资源量。例如,一个周期,调度器A接收100个用户请求,则这100个用
户请求消耗的资源提供实体提供的资源即可根据每个用户请求需要消耗的资源提供实体提供的资源求和算出。
本发明实施例以资源为IOPS能力,资源提供实体A为存储阵列A,资源提供实体B为存储阵列B为例进行说明。
在对本发明实施例进一步描述之前,需要说明的是,图2中所示的调度器A、协调器A和资源提供实体A的之间关系只是逻辑上的呈现,具体实现中,可如图3a所示,资源提供实体A、调度器A和协调器A位于同一装置内;或者如图3b所示,资源提供实体A和调度器A位于同一装置内,而协调器A独立于资源提供实体A和调度器A,或者其他实现方式,具体实现方式在此不作限定。同理,图2中所示的调度器B、协调器B和资源提供实体B的之间关系可参照图3a和图3b。调度器可以为独立的设备或者硬件模块。调度器的功能还可以由处理器执行特定的计算机指令来实现。如调度器A、协调器A与资源提供实体A均由处理器执行特定的计算机指令来实现,则调度器A与协调器A间通信,调度器A与资源提供实体A之间通信,可以表现为指令的调用,或不同程序模块的链接等;同理,协调器可以为独立的设备或者硬件模块。协调器的功能还可以由处理器执行特定的计算机指令来实现,本发明实施例对此不作限定。本发明实施例中的调度器所实施的方法步骤,具体的一种实现,可以由计算机的处理器执行存储器中的计算机指令来实现。在此不再赘述。
如图2所示的分布式资源系统中,用户A向存储阵列A和存储阵列B发送用户A请求,则存储阵列A和存储阵列B在处理用户A请求时,均需要消耗IOPS能力。同理,用户B向存储阵列A和存储阵列B发送用户B请求,也需要消耗存储阵列A和存储阵列B的IOPS能力。特别地,当存储阵列A中的IOPS能力不能够满足同时处理用户A请求和用户B请求,则需要调度器A对接收到的用户A请求和用户B请求根据调
度算法进行调度;当存储阵列B中的IOPS能力不能够满足同时处理用户A请求和用户B请求,则需要调度器B对接收到的用户A请求和用户B请求根据调度算法进行调度。
用户A与用户B为存在资源竞争关系的用户,为保证各用户的性能,通常分布式资源系统中,会给每个用户分配资源权重。本发明实施例以用户A和用户B为例,用户A的资源权重φA为2,用户B的资源权重φB为1。则用户A和用户B的资源权重比为2:1。在调度器A上配置用户A和用户B的资源权重,在调度器B上配置用户A和用户B的资源权重。具体可由用户A向调度器A和调度器B分别下发用户A的资源权重,用户B向调度器A和调度器B分别下发用户B的资源权重,调度器A和调度器B进行上述配置。资源权重并不限于本发明实施例所示的形式,也可以用户A的资源权重φA为2/3,用户B的资源权重φB为1/3。
调度器A接收用户A发送的用户A请求,调度器A接收用户B发送的用户B请求。用户A请求和用户B请求均需要存储阵列A提供IOPS能力,或者说用户A请求和用户B请求均消耗存储阵列A提供的IOPS能力。同样,调度器B接收用户A发送的用户A请求,调度器B接收用户B发送的用户B请求。当存储阵列A的IOPS能力能够满足用户A请求和用户B请求时,则调度器A不需要将接收到的用户A请求和用户B请求根据调度算法进行调度,当存储阵列B的IOPS能力能够满足用户A请求和用户B请求时,调度器B也不需要将接收到的用户A请求和用户B请求根据调度算法进行调度。调度器A只需要根据调度算法计算接收到的用户请求的起始虚拟时间和结束虚拟时间,同理,调度器B也只需要根据调度算法计算接收到的用户请求的起始虚拟时间和结束虚拟时间。关于起始虚拟时间和结束虚拟时间的含义,请参见起始时间公平序列(Start-time fairness queuing,SFQ)算法。在需要对用户请求进行调度时,调度器A需要根据调度算法将接收到的用户A请求和用户B
请求加入调度器A的调度队列进行调度,调度器B也需要根据调度算法将接收到的用户A请求和用户B请求加入调度器B的调度队列进行调度。
如图4所示:步骤401,在Tn+1周期,调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn)。其中Tn表示第n个周期,Tn+1表示第n+1个周期;CA(Tn)表示在Tn周期,调度器A接收的NA,A(Tn)个用户A请求消耗的资源提供实体A提供的资源CA,A(Tn)和调度器B接收的NA,B(Tn)个用户A请求消耗资源提供实体B提供的资源CA,B(Tn)之和;CB(Tn)表示在Tn周期,调度器A接收的NB,A(Tn)个用户B请求消耗的资源提供实体A提供的资源CB,A(Tn)和调度器B接收NB,B(Tn)个用户B请求消耗的资源提供实体B提供的资源CB,B(Tn)之和。其中,用户A的归属协调器A是指获取在Tn周期分布式资源系统中调度器A处理用户A请求消耗存储阵列A的资源和调度器B处理用户A请求消耗存储阵列A的资源之和的协调器。用户A的归属协调器A也称为用户A的协调器A,同理用户的归属协调器也称为用户的协调器。
调度器A在Tn周期根据接收的每个用户A请求消耗的资源提供实体A提供的资源获得调度器A在Tn周期处理的NA,A(Tn)个用户A请求消耗的资源提供实体A提供的资源CA,A(Tn);调度器A在Tn周期根据接收的每个用户B请求消耗的资源提供实体A提供的资源,获得调度器A在Tn周期处理的NB,A(Tn)个用户B请求消耗的资源提供实体A提供的资源CB,A(Tn);同理,调度器B在Tn周期根据接收的每个用户A请求消耗的资源提供实体B提供的资源,获得调度器B在Tn周期处理的NA,B(Tn)个用户A请求消耗的资源提供实体B提供的资源CA,B(Tn);调度器B在Tn
周期根据接收的每个用户B请求消耗的资源提供实体B提供的资源获得调度器B在Tn周期处理的NB,B(Tn)个用户B请求消耗的资源提供实体B提供的资源CB,B(Tn)。在Tn周期处理用户A请求消耗的资源CA(Tn)=CA,A(Tn)+CA,B(Tn),处理用户B请求消耗的资源CB(Tn)=CB,A(Tn)+CB,B(Tn)。
具体地,协调器A获取CA,A(Tn)和CA,B(Tn),一种实现方式为调度器A主动向协调器A发送CA,A(Tn),调度器B主动向协调器A发送CA,B(Tn)。另一种实现方式,协调器A向调度器A请求获取CA,A(Tn),协调器A向调度器B请求获取CA,B(Tn)。具体地,协调器A可以一次获得CA,A(Tn)和CA,B(Tn),协调器A也可以实时与调度器A和调度器B通信,从而实时获取调度器A接收的每个用户A请求消耗的资源提供实体A提供的资源,实时获取调度器B接收的每个用户A请求消耗的资源提供实体B提供的资源。同时,协调器B获取处理用户B请求消耗的资源CB(Tn)的方式请参照协调器A,在此不再赘述。
调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn),一种实现方式,在Tn+1周期,协调器A分别向调度器A和调度器B发送CA(Tn),协调器B分别向调度器A和调度器B发送CB(Tn);另一种实现方式,在Tn+1周期,调度器A向协调器A请求CA(Tn),调度器A向协调器B请求CB(Tn);调度器B向协调器A请求CA(Tn),调度器B向协调器B请求CB(Tn)。以上两种方式皆称为:在Tn+1周期,调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn)。无论上述任一种实现方式,通过上述描述可知,调度器A存储NA,A(Tn)、NB,A(Tn)、CA,A(Tn)和CB,A(Tn),调度器B存储NA,B(Tn)、
NB,B(Tn)、CA,B(Tn)和CB,B(Tn)。
关于用户的归属协调器的确定,一种方式可以配置协调器为某一用户的归属协调器;或者在用户标识为整数时,根据用户标识对协调器总个数取模确定用户的归属协调器,还可以使用哈希函数对用户标识计算得到哈希值,再用哈希值对协调器总个数取模确定用户的归属协调器。如有100个用户,有20个协调器,用户的标识分别为1到100,对20个协调器从1到20分别编号,根据用户标识对协调器总个数取模确定每个用户的归属协调器,本发明对此不作限定。协调器的总个数可以小于或者等于调度器的数量,并且每一个协调器与任一调度器均可通信。
步骤402,调度器A根据φA、CA(Tn)、CA,A(Tn)和NA,A(Tn)使用调度算法对接收的用户A请求进行调度;调度器A根据φB、CB(Tn)、CB,A(Tn)和NB,A(Tn),使用调度算法对接收的用户B请求进行调度。
同理,调度器B根据φA、CA(Tn)、CA,B(Tn)和NA,B(Tn)使用调度算法对接收的用户A请求进行调度;调度器B根据φB、CB(Tn)、CB,B(Tn)和NB,B(Tn),使用调度算法对接收的用户B请求进行调度。
根据图4所示的方法对调度器上的用户请求进行调度时,调度器A根据从协调器A获得的上一周期用户A请求在分布式资源系统中消耗的资源量、用户A的资源权重、上一周期用户调度器A接收的用户A请求的个数以及上一周期用户调度器A接收的用户A请求消耗的资源实体A提供的资源进行调度,在没有现有技术中的用户代理的架构下,使用协调器获得上一周期用户A请求在分布式资源系统中消耗的资源量,从而不需要调度器A进行额外的操作,能够减少调度器A的资源,并且调度器根据φA、CA(Tn)、CA,A(Tn)和NA,A(Tn)对用户A请求进行调度,从而实现用户A请求的全局调度,保证用户z的性能需求。
调度器A对用户B请求调度,或调度器B对用户A请求进行调度,或者调度器B对用户B请求调度,同样达到上述效果。现有技术中基于用户代理架构,调度器只能够获得一个用户代理发送的用户请求及用户请求的统计信息,因此,难以实现同一用户请求的全局调度。
本发明实施例中,以调度器A调度用户A请求为例,用户A请求的全局调度是调度器A不仅需要考虑上一周期φA、CA,A(Tn)和NA,A(Tn),还要考虑CA(Tn),从而实现用户A请求的调度,进而保证用户A的性能。
具体地,本发明实施例中,Pi A,A表示调度器A接收用户A发送的第i个用户A请求,由存储阵列A为Pi A,A提供资源;Pi A,B表示调度器B接收用户A发送的第i个用户A请求,由存储阵列B为Pi A,B提供资源。Pk B,A表示调度器A接收用户B发送的第k个用户B请求,由存储阵列A为Pk B,A提供资源,Pk B,B表示调度器B接收用户B发送的第k个用户B请求,由存储阵列B为Pk B,B提供资源。本发明实施例中,φA=2,φB=1。
在Tn周期,当调度器A接收的用户A请求和用户B请求的数量小于存储阵列A的IOPS能力时,则不需要对调度器A接收的用户A请求和用户B请求使用调度算法进行调度,直接由存储阵列A处理。调度器B接收到的用户A请求和用户B请求的数量小于存储阵列B的IOPS能力时,也不需要对调度器B接收的用户A请求和用户B请求使用调度算法进行调度,直接由存储阵列B处理。但用户A的归属协调器A需要获取周期Tn各调度器接收的用户A请求的消耗的资源。本发明实施例中,用户A的归属协调器A获取Tn周期调度器A和调度器B接收的用户A请求的消耗的资源为CA(Tn)。同时,用户B的归属协调器B获取Tn周期调度器A和调度器B接收的用户B请求消耗的资源为CB(Tn)。协调器A将CA(Tn)发送给调度器A和调度器B,协调器B将CB(Tn)发送给调度器A和调度器B。调度器A在Tn周期接收用户A请求的数量为NA,A(Tn),消
耗存储阵列A提供的资源为CA,A(Tn);调度器A在Tn周期接收用户B请求的数量为NB,A(Tn),消耗存储阵列A提供的资源为NB,A(Tn)。调度器B在Tn周期接收用户A请求的数量为NA,B(Tn),消耗存储阵列B提供的资源为CA,B(Tn);调度器B在Tn周期接收用户B请求的数量为NB,B(Tn),消耗存储阵列B提供的资源为CB,B(Tn)。
在Tn+1周期,以调度器A为例,调度器A从用户A的归属协调器A获取Tn周期用户A请求消耗的资源CA(Tn)。在Tn+1周期,当存储阵列A的IOPS能力不能够满足用户A请求和用户B请求时,调度器A对接收的用户A请求和用户B请求使用调度算法加入调度器A的调度队列进行调度。调度器A接收到用户A请求和用户B请求时,分别计算用户A请求和用户B请求起始虚拟时间和结束虚拟时间。将用户A请求和用户B请求加入调度队列,将用户A请求和用户B请求按照起始虚拟时间由小到大的顺序在调度队列中排序等待处理。起始虚拟时间最小的用户请求排在调度队列的队首,起始虚拟时间最大的用户请求排列在调度队列的队尾。其中,调度队列的队首是指调度队列中存储阵列A最先进行用户请求处理的位置。存储阵列A在处理用户请求时,从调度队列的队首取用户请求进行处理,即先处理起始虚拟时间最小的用户请求。存储阵列A从调度队列中按用户请求的起始虚拟时间由小到大的顺序处理用户请求。
第一种实现方式,调度器A接收的Pi A,A的起始虚拟时间用S(Pi A,A)表示,Pi A,A的结束虚拟时间用F(Pi A,A)表示。S(Pi A,A)=max{v(Pi A,A),F(Pi-1 A,A)};其中,v(Pi A,A)表示调度器A接收Pi A,A时调度器A的虚拟时间;F(Pi-1 A,A)表示Pi-1 A,A的结束虚拟时间;max{v(Pi A,A),F(Pi-1 A,A)}表示v(Pi A,A)和F(Pi-1 A,A)中的最大值。关于起始虚拟时间S(Pi A,A)、结束虚拟时间F(Pi A,A)和虚拟时间v(Pi A,A)的含义,请参见起始时间公平序列(Start-time fairness queuing,SFQ)算法,本发明实施例不再赘述。其中,c(Pi A,A)表示Pi A,A消耗存储阵列A提供的资源,本发明实施例为1个IOPS;d(PA,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户A请求的延迟值,同理,调度器A接收的Pk B,A的起始虚拟时间用S(Pk B,A)表示,Pk B,A的结束虚拟时间用F(Pk B,A)表示。S(Pk B,A)=max{v(Pk B,A),F(Pk-1 B,A)};其中,v(Pk B,A)表示调度器A接收Pk B,A时调度器A的虚拟时间;F(Pk-1 B,A)表示Pk-1 B,A的结束虚拟时间;max{v(Pk B,A),F(Pk-1 B,A)}表示v(Pk B,A)和F(Pk-1 B,A)中的最大值。其中,c(Pk B,A)表示Pk B,A消耗存储阵列B提供的资源,本发明实施例为1个IOPS;d(PB,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户B请求的延迟值,
调度器B接收的Pi A,B的起始虚拟时间用S(Pi A,B)表示,Pi A,B的结束虚拟时间用F(Pi A,B)表示。S(Pi A,B)=max{v(Pi A,B),F(Pi-1 A,B)},其中,v(Pi A,B)表示调度器B接收Pi A,B时调度器B的虚拟时间;F(Pi-1 A,B)表示Pi-1 A,B的结束虚拟时间;max{v(Pi A,B),F(Pi-1 A,B)}表示v(Pi A,B)和F(Pi-1 A,B)中的最大值。其中,c(Pi A,B)表示Pi A,B消耗存储阵列B提供的资源,在本发明实施例为1个IOPS;d(PA,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户A请求的延迟值,
同理,调度器B接收的Pk B,B的起始虚拟时间用S(Pk B,B)表示,Pk B,B的结束虚拟时间用F(Pk B,B)表示。S(Pk B,B)=max{v(Pk B,B),F(Pk-1 B,B)},其中,v(Pk B,B)表示调度器B接收Pi B,B时调度器B的虚拟时间;F(Pk-1 B,B)表示Pk-1 B,B的结束虚拟时间;max{v(Pk B,B),F(Pk-1 B,B)}表示v(Pk B,B)和F(Pk-1 B,B)中的最大值。其中,c(Pk B,B)表示Pk B,B消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS;d(PB,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户B请求的延迟值,
第二种实现方法,调度器A接收的Pi A,A的起始虚拟时间用S(Pi A,A)表示,Pi A,A的结束虚拟时间用F(Pi A,A)表示。其中,v(Pi A,A)表示调度器A接收Pi A,A时调度器A的虚拟时间,d(PA,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户A请求的延迟值,F(Pi-1 A,A)表示Pi-1 A,A的结束虚拟时间;表示v(Pi A,A)和中的最大值。关于起始虚拟时间S(Pi A,A)、结束虚拟时间F(Pi A,A)和虚拟时间v(Pi A,A)的含义,请参见起始时间公平序列(Start-time fairness queuing,SFQ)算法,本发明实施例不再赘述。其中,c(Pi A,A)表示Pi A,A消耗存储阵列A提供的资源,在本发明实施例中为1个IOPS;同理,调度器A接收的Pk B,A的起始虚拟时间用S(Pk B,A)表示,Pk B,A的结束虚拟时间用F(Pk B,A)
表示。其中,v(Pk B,A)表示调度器A接收Pk B,A时调度器A的虚拟时间;d(PB,A(T))表示在Tn+1周期,调度器A接收的每个用户B请求的延迟值,F(Pk-1 B,A)表示Pk-1 B,A的结束虚拟时间;表示v(Pk B,A)和中的最大值。其中,其中,c(Pk B,A)表示Pk B,A消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS。
调度器B接收的Pi A,B的起始虚拟时间用S(Pi A,B)表示,Pi A,B的结束虚拟时间用F(Pi A,B)表示。其中,v(Pi A,B)表示调度器B接收Pi A,B时调度器B的虚拟时间,d(PA,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户A请求的延迟值,F(Pi-1 A,B)表示Pi-1 A,B的结束虚拟时间;表示v(Pi A,B)和中的最大值。其中,c(Pi A,B)表示Pi A,B消耗存储阵列B提供的资源,在本发明实施例为1个IOPS。同理,调度器B接收的Pk B,B的起始虚拟时间用S(Pk B,B)表示,Pk B,B的结束虚拟时间用F(Pk B,B)表示。其中,v(Pk B,B)表示调度器B接收Pi B,B时调度
器B的虚拟时间;d(PB,B(Tn+1))表示在Tn+1周期,接收的每个用户B请求在调度器A上的延迟值,F(Pk-1 B,B)表示Pk-1 B,B的结束虚拟时间;表示v(Pk B,B)和F(Pk-1 B,B)中的最大值。其中,c(Pk B,B)表示Pk B,B消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS。
以第一种计算用户请求起始虚拟时间和结束虚拟时间方式为例,如图5所示,本实施例以分布式资源系统初始化后,在Tn+1周期,调度器A接收的用户A请求Pi A,A依次分别为P1 A,A、P2 A,A、P3 A,A、P4 A,A和P5 A,A,共5个。调度器B接收用户A请求Pi A,B为0个。调度器A接收的用户B请求Pk B,A依次分别为P1 B,A、P2 B,A、P3 B,A和P4 B,A,共4个。调度器B接收用户B请求Pk B,B依次分别为P1 B,B、P2 B,B、P3 B,B、P4 B,B和P5 B,B,共5个。在本发明实施例中,Tn+1周期实际为第一个周期。P1 A,A,为调度器A接收的第1个用户A请求。此时需要对接收到的P1 A,A根据调度算法加入调度器A的调度队列进行调度。首先,计算P1 A,A的起始虚拟时间S(P1 A,A)=max{v(P1 A,A),F(Pi-1 A,A)},由于Tn+1周期实际为第一个周期,即调度器A之前没有接收到任何Pi A,A,因此F(P0 A,A)为空,调度器A初始化完成即接收P1 A,A,则S(P1 A,A)=v(P1 A,A)=0。计算P1 A,A的结束虚拟时间S(P1 A,A)=0,c(Pi A,A)=1,φA=2,CA,B(Tn)=0,NA,A(Tn)=0,则d(PA,A(Tn+1))=0,同理,P2 A,A的起始虚拟时间为0.5,结束虚拟时间为1;P3 A,A的起始虚拟时间为1,结束虚拟时间
为1.5;P4 A,A的起始虚拟时间为1.5,结束虚拟时间为2;P5 A,A的起始虚拟时间为2,结束虚拟时间为2.5。其中,图5中表示P1 A,A的起始虚拟时间为0,结束虚拟时间为0.5,图5及后面其他图中的相类及类似标识请参考的含义,不再赘述。
对调度器A接收到的用户B请求,P1 B,A,计算P1 B,A的起始虚拟时间S(P1 B,A)=max{v(P1 B,A),F(P0 B,A)}。由于Tn+1周期实际为第一个周期,即调度器A之前没有接收到任何Pk B,A,因此F(P0 B,A)为空,调度器A初始化完成即接收P1 B,A,v(P1 B,A)=0。P1 B,A的结束虚拟时间c(P1 B,A)=1,CB,B(Tn)=0,NB,A(Tn)=0,则d(PB,A(Tn+1))=0,φB=1,F(P1 B,A)=1。同理,P2 B,A的起始虚拟时间为1,结束虚拟时间为2;P3 B,A的起始虚拟时间为2,结束虚拟时间为3;P4 B,A的起始虚拟时间为3,结束虚拟时间为4。
对调度器B接收到的用户B请求,P1 B,B,此时需要对接收到的P1 B,B进行调度,计算P1 B,B的起始虚拟时间S(P1 B,B)=max{v(P1 B,B),F(P0 B,B)},由于Tn+1周期实际为第一个周期,即调度器B之前没有接收到任何Pk B,B,因此F(P0 B,B)为空,调度器B初始化完成即接收P1 B,B,v(P1 B,B)=0。BB1的结束虚拟时间c(P1 B,B)=1,CB,A(Tn)=0,NB,B(Tn)=0,d(PB,B(Tn+1))=0,φB=1,F(P1 B,B)=1。同理,P2 B,B的起始虚拟时间为1,结束虚拟时间为2;P3 B,B的起始虚拟时间为2,结束虚拟时间为3;P4 B,B的起始虚拟时间为3,结束虚拟时间为4;P5 B,B的起始虚拟时间为4,
结束虚拟时间为5。
调度器A对P1 A,A、P2 A,A、P3 A,A、P4 A,A和P5 A,A分别计算起始虚拟时间和结束虚拟时间,对P1 B,A、P2 B,A、P3 B,A和P4 B,A分别计算起始虚拟时间和结束虚拟时间,根据调度器A接收的用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列排序等待处理,即调度队列中按队首到队尾的顺序依次为P1 A,A、P2 A,A、P1 B,A、P3 A,A、P4 A,A、P2 B,A、P5 A,A、P3 B,A和P4 B,A,如图6所示。存储阵列A处理用户请求时,按P1 A,A、P2 A,A、P1 B,A、P3 A,A、P4 A,A、P2 B,A、P5 A,A、P3 B,A和P4 B,A的顺序进行处理。如图6所,在用户A请求与用户B请求存在资源竞争时,调度队列中一组用户请求P1 A,A、P2 A,A和P1 B,A按照2:1的关系消耗存储阵列A提供的IOPS。调度队列中另一组用户请求P3 A,A、P4 A,A和P2 B,A也满足该要求。
调度器B对P1 B,B、P2 B,B、P3 B,B、P4 B,B和P5 B,B分别计算起始虚拟时间和结束虚拟时间,根据调度器B接收的所有用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列中排序等待处理,即调度队列中按队首到队尾的顺序依次为P1 B,B、P2 B,B、P3 B,B、P4 B,B和P5 B,B BB5,如图7所示。存储阵列B处理用户请求时,按P1 B,B、P2 B,B、P3 B,B、P4 B,B和P5 B,B的顺序进行处理。由于调度器B上只有用户B请求,不存在资源竞争,因此按照用户B请求的起始虚拟时间由小到大顺序处理用户B请求。
在Tn+1周期内,本领域技术人员可知,在具体实现中,调度器A和调度器B接收的用户请求数量可能会远远大于实施例中提供的用户请求数量。用户也不仅仅限于两个。本发明实施例只是为描述方便,在Tn+1周期内,调度器A接收用户A请求依次为P1 A,A、P2 A,A、P3 A,A、P4 A,A和P5 A,A,调度器A接收用户B请求依次为P1 B,A、P2 B,A、P3 B,A和P4 B,A;
调度器B接收用户B请求依次为P1 B,B、P2 B,B、P3 B,B、P4 B,B和P5 B,B。
根据前面描述的方式,调度器A计算在Tn+1周期接收的NA,A(Tn+1)个用户A请求消耗的存储阵列A提供的资源CA,A(Tn+1),以及接收的NB,A(Tn+1)个用户B请求消耗的存储阵列A提供的的资源CB,A(Tn)。调度器A在计算在Tn+1周期接收的NA,A(Tn+1)个用户A请求消耗的存储阵列A提供的资源CA,A(Tn+1),具体为在本发明实施例中,1个用户A请求消耗1个IOPS,则调度器A根据在Tn+1周期接收的用户A请求个数NA,A(Tn+1)=5,则消耗的存储阵列A提供的资源CA,A(Tn+1)为5个IOPS。同理,调度器A在Tn+1周期接收的用户B请求个数NB,A(Tn+1)=4,则消耗的存储阵列A提供的资源CB,A(Tn+1)为4个IOPS。调度器B在Tn+1周期接收的用户A请求个数NA,B(Tn+1)=0,则消耗的存储阵列B提供的资源CA,B(Tn+1)为0个IOPS。同理,调度器B在Tn+1周期接收的用户B请求个数NB,B(Tn+1)=5,则消耗的存储阵列B提供的资源CB,B(Tn+1)为5个IOPS。协调器A分别获得调度器A在Tn+1周期处理用户A请求消耗存储阵列A提供的资源CA,A(Tn+1)为5个IOPS,调度器B在Tn+1周期处理用户A请求消耗存储阵列B提供的资源CA,B(Tn+1)为0个IOPS;则在Tn+1周期,用户A请求消耗的资源总量CA(Tn+1)=CA,A(Tn+1)+CA,B(Tn+1),CA(Tn+1)=5个IOPS。同理,协调器B获得在Tn+1周期,用户B请求消耗的资源总量CB(Tn+1)=CB,A(Tn+1)+CB,B(Tn+1),CB(Tn+1)=9个IOPS。协调器A分别向调度器A和调度器B发送消息,消息中携带CA(Tn+1),从而调度器A和调度器B分别从协调器A获得在Tn+1周期用户A请求消耗IOPS数量为5。同理,协调器B分别向调度器A和调度器B发送消息,消息中携带CB(Tn+1),从而调度器A和调度器B分别从协调器B获得在Tn+1周期用户B请求消耗IOPS数量为9。
如图8所示,在Tn+2周期内,调度器A接受第一个用户A请求P6 A,A,P6 A,A的起始虚拟时间为S(P6 A,A)=max{v(P6 A,A),F(P5 A,A)},v(P6 A,A)=F(P5 A,A)=2.5,因此,S(P6 A,A)=2.5。在Tn+1周期,CA,B(Tn+1)=0,NA,A(Tn+1)=5,则d(PA,A(Tn+2))=0,c(P6 A,A)=1,φA=2,因此,F(P6 A,A)=3。同理,P7 A,A的起始虚拟时间为3,结束虚拟时间为3.5;P8 A,A的起始虚拟时间为3.5,结束虚拟时间为4;P9 A,A的起始虚拟时间为4,结束虚拟时间为4.5。
在Tn+2周期内,调度器A接收第一个用户B请求P5 B,A,S(P5 B,A)=max{v(P5 B,A),F(P4 B,A)},v(P5 B,A),=F(P4 B,A)=4,因此,S(P5 B,A)=4。P5 B,A的结束虚拟时间c(P5 B,A)=1,CB,B(Tn+1)=5,NB,A(Tn+1)=4,d(PB,A(Tn+2))=1.25,φB=1,F(P5 B,A)=6.25。同理,P6 B,A的起始虚拟时间为6.25,结束虚拟时间为8.5;P7 B,A的起始虚拟时间为8.5,结束虚拟时间为10.75;P8 B,A的起始虚拟时间为10.75,结束虚拟时间为13。
调度器A依次计算P6 A,A、P7 A,A、P8 A,A和P9 A,A的起始虚拟时间和结束虚拟时间,调度器A依次计算P5 B,A、P6 B,A、P7 B,A和P8 B,A的起始虚拟时间和结束虚拟时间,根据调度器A接收的用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列中排序等待处理,即调度队列中按队首到队尾的顺序依次为P6 A,A、P7 A,A、P8 A,A、P9 A,A、P5 B,A、P6 B,A、P7 B,A和P8 B,A,如图9所示。存储阵列A处理用户请求时,从按P6 A,A、P7 A,A、P8 A,A、P9 A,A、P5 B,A、P6 B,A、P7 B,A和P8 B,A的顺序进行处理。
在Tn+2周期内,调度器B接收第一个用户A请求P1 A,B和第一个用户B请求P6 B,B。假设调度器B在相同时刻接收到P1 A,B和P6 B,B。P6 B,B的起始虚拟时间S(P6 B,B)=max{v(P6 B,B),F(P5 B,B)},v(P6 B,B)=F(P5 B,B)=5,因此,S(P6 B,B)=5。P6 B,B的结束虚拟时间c(P6 B,B)=1,φB=1,F(P6 B,B)=6.8。同理,P7 B,B的起始虚拟时间为6.8,结束虚拟时间为8.6;P8 B,B的起始虚拟时间为8.6,结束虚拟时间为10.4。P1 A,B的起始虚拟时间S(P1 A,B)=max{v(P1 A,B),F(P0 A,B)},F(P0 A,B)=0,v(P1 A,B)=v(P6 B,B)=5,因此,S(P1 A,B)=5。P1 A,B的结束虚拟时间c(P1 A,B)=1,CA,A(Tn+1)=5,NA,A(Tn+1)=0,则d(PA,B(Tn+2))=0,φA=2,F(P1 A,B)=5.5。同理,P2 A,B的起始虚拟时间为5.5,结束虚拟时间为6;P3 A,B的起始虚拟时间为6,结束虚拟时间为6.5。
调度器B将用户请求加入调度队列,在调度队列中用户请求的按起始虚拟时间由小到大进行排序,即调度队列中按队首到队尾的顺序依次为P1 A,B、P6 B,B、P2 A,B、P3 A,B、P7 B,B和P8 B,B,如图10所示。存储阵列B处理用户请求时,按P1 A,B、P6 B,B、P2 A,B、P3 A,B、P7 B,B和P8 B,B的顺序进行处理。
本发明实施例提供的分布式资源系统用户请求的调度方法,进一步地,可以应用如图11所示的场景,包括用户1到用户H,调度器S1到调度器SM,资源提供实体R1到资源提供实体RM,协调器G1到协调器GY。其中,H为不小于2的自然数,M为不小于2的自然数,N为自然数。调度器Sx与资源提供实体Rx通信,x为1到M的任一自然数,任一
用户z可以向任一调度器Sx发送用户z请求,Rx为Sx接收的用户请求提供资源,协调器Gy与任一Rx通信,y为1到Y的任一自然数,Y的取值可以小于等于M,也可大于M。Y也可以为1,即分布式资源系统中只有一个协调器。协调器的个数可以由调度器的数量决定,也可以由用户数量决定,本发明实施例对于不限定。对任一用户z,在Tn+1周期,向调度器Sd发送第i个用户z请求Pi z,d,i为自然数,d为自然数,1≤d≤M,Sd表示S1到SM中的一个。当Sd需要对接收的用户请求进行调度时,执行如下步骤:
步骤1201:在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;表示在Tn周期S1至SM接收的用户z请求消耗R1至RM提供的资源之和。
步骤1201中,Cz,x(Tn)具体包括Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源之和。Nz,x(Tn)表示Sx在Tn周期Sx接收的用户z请求的个数。Sx将Cz,x(Tn)发送给Gk,Gk根据获得Cz(Tn)。Gk获得Cz(Tn)的一种方式为Sx将Cz,x(Tn)主动发送给Gk,另一种方式为Sx接收Gk请求,根据Gk请求,将Cz,x(Tn)发送给Gk。Gk根据得到Cz,x(Tn)。Sx存储Nz,x(Tn)和Cz,x(Tn)。
步骤1202:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周
期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Pi z,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。
其中,步骤1202具体包括:
Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Pi z,d进行调度,具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗Rd提供的资源。
或者,
v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗Rd提供的资源。
关于起始虚拟时间S(Pi A,A)、结束虚拟时间F(Pi A,A)和虚拟时间v(Pi A,A)的含义,请参见起始时间公平序列(Start-time fairness queuing,SFQ)算法,本发明实施例不再赘述。
其中,d(Pz,d(Tn+1))表示在Tn+1周期,Sd接收的每个Pi z,d的延迟值。
当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
其中,c(Pi z,d)具体可为Pi z,d消耗的IOPS或带宽长度。
步骤1201具体包括:
Gk是根据z%Y=k确定的,其中z%Y表示用z对Y取模,或者,Gk是根据Hash(z)%Y=k确定的,其中Hash(z)表示对z使用哈希函数计算,Hash(z)%Y表示对z使用哈希函数计算得到的值对Y取模。
图11所示的应用场景中,CK用于向每一个调度器Sx发送Cz(Tn)。
图11所示的应用场景中,Sd使用调度算法对用户z请求调度的方法适用于本发明实施例的分布式资源系统中任一用户请求的调度。在Sd中可对两个或两个以上用户的请求进行调度。
图11所示的应用场景中,调度器Sd根据用户z在整个分布式资源系统中在Tn周期的Cz(Tn)、Cz,d(Tn)和Nz,d(Tn),结合用户的权重φz,将用户z请求Pi z,d根据调度算法进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。
本发明实施例的系统架构不需要依赖用户代理,即可对用户z请求进行调度。
本发明实施例中,以资源为IOPS为例,通常1个用户请求消耗1个IOPS。以资源为网络带宽为例,1个用户请求消耗的资源为用户请求的网络带宽。当用户请求消耗的资源为网络带宽时,每个用户请求消耗资源提供实体提供的资源的大小由用户请求决定。
本发明实施例中,使用调度算法对用户请求进行调度包括根据本发明实施例中的调度算法计算用户请求的起始虚拟时间和结束虚拟时间,将用户请求加入调度队列,根据用户请求的起始虚拟时间大小,在调度队列中排序。在用户请求不需要调度时,则需要根据本发明实施例的调度算法计算用户请求的起始虚拟时间和结束虚拟时间,不需要加入调度队列排序。
本发明实施例中,Sd、Sx、Rx、Gy和Gk只是用来标识某一具体
设备,这里的设备可以指实体设备也可以指逻辑设备,同理,也可以用第一、第二这种方式来表述,具体只是表示方式的差异,不构成对本发明方案的限定。
如图12所示,本发明实施例提供了一种调度器Sd,调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括获取单元1301和调度单元1302;其中,
所述获取单元1301用于在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;
所述调度单元1302用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
具体地,调度单元1302用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,具体包括:
根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
具体地,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
具体地,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
关于起始虚拟时间S(Pi A,A)、结束虚拟时间F(Pi A,A)和虚拟时间v(Pi A,A)的含义,请参见起始时间公平序列(Start-time fairness queuing,SFQ)算法,本发明实施例不再赘述。
具体地,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,不需要依赖用户代理,即可对用户z请求进行调度,并且Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。
在另一种分布式资源系统中资源调度方法实施方式中,分布式资源系统包括多个调度器,所述多个调度器中的第一调度器从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;
所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
进一步地,所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述
第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度,具体包括:
所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。
在另一种分布式资源系统,分布式资源系统包括多个调度器,其中,如图12所示,所述多个调度器中的第一调度器包括获取单元1301和调度单元1302;
所述获取单元1301用于从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;
所述调度单元1302用于用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
进一步地,所述调度单元1302具体用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。
本发明实施例提供的技术方案也可以应用到其他场景,例如,分布式资源系统为分布式计算系统,资源提供实体为用户请求提供计算资源;分布式资源系统也可以为分布式网络系统,资源提供实体为用户请求提供网络带宽;资源提供实体还可为用户请求提供内存资源。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的系统、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方
案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (29)
- 一种分布式资源系统中用户请求的调度方法,其特征在于,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;所述方法包括:在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
- 根据权利要求1所述的方法,其特征在于,Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Pi z,d进行调度,具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
- 根据权利要求2所述的方法,其特征在于,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求3所述的方法,其特征在于,当Cz(Tn)-Cz,d(Tn)和 Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 根据权利要求2所述的方法,其特征在于,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求5所述的方法,其特征在于,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 根据权利要求1所述的方法,其特征在于,Gk是根据z%Y=k确定的,其中z%Y表示用z对Y取模。
- 根据权利要求1所述的方法,其特征在于,Gk是根据Hash(z)%Y=k确定的,其中Hash(z)表示对z使用哈希函数计算,Hash(z)%Y表示对z使用哈希函数计算得到的值对Y取模。
- 一种调度器Sd,其特征在于,所述调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括中央处理单元和存储器,所述中央处理单元执行所述存储器中的可执行指令以执行:在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
- 根据权利要求9所述的调度器Sd,其特征在于,根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Pi z,d进行调度,具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
- 根据权利要求10所述的的调度器Sd,其特征在于,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求11所述的的调度器Sd,其特征在于,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 根据权利要求10所述的的调度器Sd,其特征在于,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求11所述的的调度器Sd,其特征在于,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 一种调度器Sd,其特征在于,所述调度器Sd应用于分布式资 源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括获取单元和调度单元;其中,所述获取单元用于在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;所述调度单元用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
- 根据权利要求15所述的调度器Sd,其特征在于,所述调度单元用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,具体包括:根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
- 根据权利要求16所述的调度器Sd,其特征在于,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求17所述的调度器Sd,其特征在于,当Cz(Tn)- Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 根据权利要求16所述的调度器Sd,其特征在于,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求18所述的调度器Sd,其特征在于,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。
- 一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储计算机指令用于执行分布式资源系统中的用户请求的调度,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Cy与任一Sx通信;调度器Sd执行所述计算机指令用于执行权利要求1至8任一所述的方法,其中,d为x中的一个。
- 一种分布式资源系统,其特征在于,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;用户z的协调器Gk用于在Tn+1周期,向调度器Sd提供在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户 的标识;所述调度器Sd用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Pi z,d进行调度,Pi z,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。
- 根据权利要求22所述的分布式资源系统,其特征在于,所述调度器Sd具体用于Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Pi z,d的起始虚拟时间S(Pi z,d)和结束虚拟时间F(Pi z,d),将Pi z,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。
- 根据权利要求23所述的方法,其特征在于,S(Pi z,d)=max{v(Pi z,d),F(Pi-1 z,d)},v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 根据权利要求23所述的方法,其特征在于,v(Pi z,d)表示Sd接收Pi z,d时Sd的虚拟时间,c(Pi z,d)表示Pi z,d消耗的Rd提供的资源。
- 一种分布式资源系统中资源调度方法,其特征在于,所述分布式资源系统包括多个调度器,所述多个调度器中的第一调度器从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述第一调度器根据所述第一用户的资源权重、在所述上一 周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
- 根据权利要求26所述的方法,其特征在于,所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度,具体包括:所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。
- 一种分布式资源系统,其特征在于,所述分布式资源系统包括多个调度器,其中,所述多个调度器中的第一调度器包括获取单元和调度单元;所述获取单元用于从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述调度单元用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。
- 根据权利要求28所述的分布式资源系统,其特征在于,所述调度单元具体用于根据所述第一用户的资源权重、在所述上 一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/095381 WO2016106516A1 (zh) | 2014-12-29 | 2014-12-29 | 在分布式资源系统中用户请求的调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105934928A true CN105934928A (zh) | 2016-09-07 |
CN105934928B CN105934928B (zh) | 2017-07-07 |
Family
ID=56164271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480001882.1A Active CN105934928B (zh) | 2014-12-29 | 2014-12-29 | 在分布式资源系统中用户请求的调度方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9575691B2 (zh) |
EP (1) | EP3057288A4 (zh) |
CN (1) | CN105934928B (zh) |
WO (1) | WO2016106516A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
WO2018129956A1 (zh) * | 2017-01-13 | 2018-07-19 | 京东方科技集团股份有限公司 | 操作实例资源的方法和装置 |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
CN114170335B (zh) * | 2021-10-18 | 2022-10-04 | 深圳追一科技有限公司 | 数字人视频的生成方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060280119A1 (en) * | 2005-06-10 | 2006-12-14 | Christos Karamanolis | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
US20070064711A1 (en) * | 2005-09-16 | 2007-03-22 | Yin Wang | System and method for providing, by a plurality of schedulers, differentiated service to consumers of distributed resources |
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
CN103973594A (zh) * | 2014-05-09 | 2014-08-06 | 清华大学 | 基于多资源的任务调度方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480861B1 (en) * | 1999-02-26 | 2002-11-12 | Merrill Lynch, Co., Inc | Distributed adaptive computing |
US6519595B1 (en) * | 1999-03-02 | 2003-02-11 | Nms Communications, Inc. | Admission control, queue management, and shaping/scheduling for flows |
US6888842B1 (en) * | 1999-10-05 | 2005-05-03 | Nortel Networks Limited | Scheduling and reservation for dynamic resource control systems |
US6434631B1 (en) * | 1999-10-15 | 2002-08-13 | Lucent Technologies Inc. | Method and system for providing computer storage access with quality of service guarantees |
AU2134301A (en) * | 1999-12-08 | 2001-06-18 | University Of British Columbia, The | Weighted fair queuing scheduler |
US6747976B1 (en) * | 2000-05-23 | 2004-06-08 | Centre for Wireless Communications of The National University of Singapore | Distributed scheduling architecture with efficient reservation protocol and dynamic priority scheme for wireless ATM networks |
US6909691B1 (en) * | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
KR20040052012A (ko) * | 2002-12-13 | 2004-06-19 | 한국전자통신연구원 | 고속 패킷 망을 위한 패킷 스케줄링 시스템 및 방법 |
US20050147103A1 (en) * | 2003-04-11 | 2005-07-07 | Samsung Electronics Co., Ltd. | Packet scheduling method and apparatus |
US7665090B1 (en) * | 2004-03-08 | 2010-02-16 | Swsoft Holdings, Ltd. | System, method, and computer program product for group scheduling of computer resources |
CN101035389A (zh) * | 2006-03-08 | 2007-09-12 | 上海交通大学 | 在无源光网络的远端设备内进行带宽分配的系统和方法 |
US8165033B1 (en) * | 2007-08-30 | 2012-04-24 | Altera Corporation | Method and apparatus for performing generalized processor sharing scheduling |
US8392633B2 (en) * | 2008-06-25 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Scheduling requesters of a shared storage resource |
US9244732B2 (en) * | 2009-08-28 | 2016-01-26 | Vmware, Inc. | Compensating threads for microarchitectural resource contentions by prioritizing scheduling and execution |
US8819687B2 (en) * | 2010-05-07 | 2014-08-26 | Advanced Micro Devices, Inc. | Scheduling for multiple memory controllers |
US8667493B2 (en) * | 2010-05-07 | 2014-03-04 | Advanced Micro Devices, Inc. | Memory-controller-parallelism-aware scheduling for multiple memory controllers |
US20130044755A1 (en) * | 2011-08-16 | 2013-02-21 | Futurewei Technologies, Inc. | Scalable Packet Scheduling Policy for Vast Number of Sessions |
-
2014
- 2014-12-29 CN CN201480001882.1A patent/CN105934928B/zh active Active
- 2014-12-29 WO PCT/CN2014/095381 patent/WO2016106516A1/zh active Application Filing
- 2014-12-29 EP EP14891590.3A patent/EP3057288A4/en not_active Ceased
-
2015
- 2015-11-04 US US14/932,628 patent/US9575691B2/en active Active
-
2016
- 2016-12-27 US US15/391,643 patent/US10127079B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060280119A1 (en) * | 2005-06-10 | 2006-12-14 | Christos Karamanolis | Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change |
US20070064711A1 (en) * | 2005-09-16 | 2007-03-22 | Yin Wang | System and method for providing, by a plurality of schedulers, differentiated service to consumers of distributed resources |
CN102495758A (zh) * | 2011-12-05 | 2012-06-13 | 中南大学 | 分布式高性能计算环境中实时任务的调度方法 |
CN103973594A (zh) * | 2014-05-09 | 2014-08-06 | 清华大学 | 基于多资源的任务调度方法 |
Non-Patent Citations (1)
Title |
---|
董荣胜等: "基于对象分布式实时系统的容错模型研究", 《计算机工程与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
US20160188367A1 (en) | 2016-06-30 |
EP3057288A4 (en) | 2016-10-26 |
US10127079B2 (en) | 2018-11-13 |
US9575691B2 (en) | 2017-02-21 |
US20170109200A1 (en) | 2017-04-20 |
EP3057288A1 (en) | 2016-08-17 |
CN105934928B (zh) | 2017-07-07 |
WO2016106516A1 (zh) | 2016-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105934928A (zh) | 在分布式资源系统中用户请求的调度方法和装置 | |
CN107748696B (zh) | 一种任务调度的方法及终端设备 | |
Tan et al. | Coupling task progress for mapreduce resource-aware scheduling | |
US10140157B2 (en) | Multiple process scheduling of threads using process queues | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
WO2019183861A1 (zh) | 任务处理方法、设备及机器可读存储介质 | |
CN109815019B (zh) | 任务调度方法、装置、电子设备及可读存储介质 | |
US9218210B2 (en) | Distributed processing system | |
CA2794339A1 (en) | Transfer of user data between logical data sites | |
JP2008027442A (ja) | サブタスク・プロセッサの分散スケジューリング | |
CN112380020A (zh) | 一种算力资源分配方法、装置、设备及存储介质 | |
JP7418569B2 (ja) | 異種プラットフォームでのハードウェアアクセラレーションによるタスクのスケジューリング及び負荷分散のための送信及び同期技術 | |
CN107741873B (zh) | 业务处理方法及装置 | |
CN109491775B (zh) | 一种用于边缘计算环境下的任务处理与调度方法 | |
US11671382B2 (en) | Technologies for coordinating access to data packets in a memory | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
KR101491689B1 (ko) | 다중 사용자를 위한 자원 할당 방법 및 장치 | |
CN111258729B (zh) | 基于Redis的任务分配方法、装置、计算机设备及存储介质 | |
JP2015108877A (ja) | 予測時間分布生成装置、制御方法、及びプログラム | |
CN111858019B (zh) | 任务调度方法、装置及计算机可读存储介质 | |
US20140139533A1 (en) | Graphic processing unit virtual apparatus, graphic processing unit host apparatus, and graphic processing unit program processing methods thereof | |
CN114546279B (zh) | Io请求预测方法、装置、存储节点及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |