CN112805683A - 使用流借用的流分配 - Google Patents
使用流借用的流分配 Download PDFInfo
- Publication number
- CN112805683A CN112805683A CN201980066406.0A CN201980066406A CN112805683A CN 112805683 A CN112805683 A CN 112805683A CN 201980066406 A CN201980066406 A CN 201980066406A CN 112805683 A CN112805683 A CN 112805683A
- Authority
- CN
- China
- Prior art keywords
- borrowing
- flow
- client
- allocation
- request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 description 16
- 238000013468 resource allocation Methods 0.000 description 14
- 238000011084 recovery Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- 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
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/806—Broadcast or multicast traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了用于分配资源的系统和方法。使用流借用系统分配诸如流的资源。以确保系统在安全分配状态下操作的方式将借用分发给客户端。借用不仅可用于分配资源,还可在必要时用于节流客户端。可以全部地、部分地、和以大于请求的数量许可借用。还可以分发零借用或负借用来节流客户端。
Description
技术领域
本发明的实施方式涉及用于分配资源的系统和方法。更具体地,本发明的实施方式涉及用于流分配或资源分配的系统和方法。附录A构成本申请的一部分并且通过引用以其整体并入本申请中。
背景技术
在单个节点或分布式/超出尺寸范围的集群环境中,分配资源可能是具有挑战性的任务。当尝试确保将资源公平地分配给使用可用资源的所有客户端时,该任务变得更复杂。例如,任何一个客户端都不应该能够具有可用资源的不公平的大的份额。同时,需要满足服务质量(QOS)要求。
更具体地,数据保护操作(例如,备份、恢复)通常与资源分配问题和服务质量(QOS)问题相关联。当一些客户端正在使用过多的资源而其他客户端因此被忽视或不能获得必要的资源时,这些问题就会出现。当对资源的需求超过节点或集群所能承受的时,QOS通常受损。为了避免这种状况或校正这种状况,需要在任一特定时间节流来自任一特定客户端的请求。因此,需要用于公平地分配资源而同时确保或满足服务质量要求的系统和方法。
附图说明
为了描述能够获得本申请的至少一些方面的方式,将参考在附图中示出的本申请的具体实施方式来进行更具体的描述。应理解这些附图仅示出本发明的示例性实施方式而因此不认为是限制本发明的范围,将通过使用附图利用附加的特殊性和细节来描述和解释本发明的实施方式,附图中:
图1示出了配置成分配资源给客户端的服务器的示例;
图2进一步示出了在集群资源或服务器资源的情况下包括流分配的资源分配;
图3A示出了用于在计算环境中执行资源分配、特别是用于分配流的方法的示例;
图3B示出了用于评估节点或服务器或集群的流分配状态的方法的示例;以及
图3C进一步示出了图3B的用于评估流分配状态的方法。
具体实施方式
本发明的实施方式涉及用于执行数据保护操作的系统和方法。数据保护操作的示例包括、但不限于资源分配操作,资源分配操作包括流分配、读取分配、分段处理分配等。数据保护操作还可以包括备份操作、恢复操作、去重操作、镜像操作、数据复制操作等或其组合。
本发明的实施方式涉及用于在计算环境中分配资源的系统和方法。本发明的实施方式还涉及在资源分配的情况下用于测量和改善服务质量以及用于对客户端节流的系统和方法。本发明的实施方式还涉及用于分配流给客户端、分配恢复借用(例如当执行恢复操作时)、以及分配分布式分段处理(distributed segment processing,DSP)借用(credit)的系统和方法。
在一个示例中,服务器的集群(或单个服务器或节点)可以具有能够分配给客户端的资源。这些资源包括流、读取、写入、处理、去重等。特定服务器例如可能提供x个流、或一定数量的读取/写入。总的来说,集群还可以提供大数量的流、读取/写入、以及处理。本发明的实施方式涉及用于分配这些资源的系统和方法。
图1示出了计算环境的示例,其中,客户端与服务器(或集群)通信。在该示例中,分配给客户端的资源包括流。客户端可能能够与多个服务器建立多个流。类似地,服务器可以与多个客户端建立多个流。
这些流资源(和/或其他资源,包括读取资源、写入资源、处理资源等)被分配,使得集群的服务器以安全分配状态操作。安全分配状态是可以许可所有的资源请求并为所有的资源请求服务直至完成的状态。这通过使用借用系统来实现。为了解释多种场景,存在可以许可的不同类型的借用。然而,每种类型可以与正在被分配的资源有关。不同类型的借用有效地表示对借用请求的不同响应。借用系统可以用于同时分配不同类型的资源和/或同时分配多个资源。
例如,由服务器或集群许可的借用的数量可以等于所请求的借用的数量、小于所请求的借用的数量、大于所请求的借用的数量、为零、或为负数。分发零或负借用允许服务器完全使用资源但在必要时进行节流。这也允许服务器或集群从不安全状态恢复并返回安全分配状态。
举例来说,可以如下描述借用:
预取借用:大于客户端所请求的借用的数量。
部分借用:小于客户端所请求的借用的数量(但大于0)。
相等借用:等于客户端所请求的借用的数量。
零借用:等于零,指示当前客户端请求不能被处理。客户端需要等待并重新尝试获得借用。
负借用:为负数,指示客户端释放缓存的借用的数量。
零借用和负借用允许服务器节流来自客户端的请求。
图1示出了提供资源给客户端(由客户端102、客户端104、客户端106和客户端108表示)的服务器(例如,数据保护或备份服务器)110。服务器100也可以表示节点的集群或服务器的集群。在一个示例中,客户端102、客户端104、客户端106和客户端108正在向服务器110发送数据流(例如,备份数据或流、恢复流、包括用于处理(诸如去重)的数据的流、等等)/从服务器110接收数据流。例如,客户端102可以正在使用流112备份多个虚拟机、数据库、文件系统、或其他数据类型。类似地,客户端104与流114相关联,客户端106与流116相关联,以及客户端108与流118相关联。
在该示例中,服务器110配置成分配流给客户端102、客户端104、客户端106和客户端108。在一个示例中,服务器102配置成使用流借用来执行流分配。流借用可以使用资源分配表120来管理,资源分配表120允许确定分配状态(例如,安全、不安全)。每当分发借用时(不管类型如何),分配表120都进行更新,使得能够评估随后的请求。
在一个示例中,评估针对流借用的请求以确定同意该请求是否会导致安全分配状态。通常,如果得到的分配状态是安全的,则许可该请求。如果该请求导致不安全分配状态,则拒绝该请求,例如通过分发零借用或通过分发负借用来拒绝该请求。
在以下描述中以及仅作为示例,假设1个可用流与1个许可的流借用相关联。换句话说以及仅作为示例,1个借用表示1个流。其他根据资源分配方案的借用可以是不同的。例如,服务器可以为每个借用许可x个流。如果与所有客户端相关联的所有的流可以被完成执行,则服务器110可以向请求客户端许可流借用。
由于服务器110可能不知道特定客户端流什么时候终止,也不知道到该特定客户端流完成的时间不同的客户端会再请求多少个流借用,服务器110可假设所有的客户端将最终尝试获取它们最大允许的流借用、使用流借用、然后释放流借用。
基于这些假设,服务器可以通过找到客户端的假想的一组流借用请求来确定流分配状态是否为安全的,该组流借用请求将允许每个客户端获取其最大请求的流借用以及使用流借用。如果是不存在这样一组流借用请求的状态,这可导致服务器110许可零流借用或负流借用。这可使得接收到这些许可或请求的客户端返回正持有的任何流借用。换句话说,许可或分发零借用或负借用的能力允许客户端被节流。在一个示例中,客户端可以自我节流,因为它们可能没有足够的借用或因为它们可能需要返回借用给服务器110。以这种方式,服务器然后尝试回到安全流分配状态,从而许可所请求的借用。
本发明的实施方式可以当由特定分配导致的系统的分配状态为安全时分配资源。如果所提出的分配导致不安全状态,则可以进行分配以使系统返回安全分配状态(例如,通过分发负借用或零借用)。以下关于流借用的讨论包括以下内容。参照下面描述的图3B和图3C更详细地描述该分配方法。
在一个示例中,使C为系统中客户端的数量,N为系统中节点或服务器的数量。
总(最大流)可用性矩阵(TAM):长度N的矩阵,指示可用于每个节点的流资源的最大数量。
TAM[j]=k,存在可用的流资源Rj的k个实例。
当前分配矩阵(CALM):限定当前分配给每个客户端的流资源的数量的C×N矩阵。
CALM[i,j]=k,于是客户端Ci当前被分配流资源Rj的k个实例。
当前可用性矩阵(CAM):长度N的矩阵,指示当前可用于每个节点类型的流的数量。其通过将当前分配给每个单独的节点上的所有客户端的流相加并从用于该节点的总最大流中减去相加的结果来确定。
CAM[j]=TAM[j]–(CALM[C0]+CALM[C1]+…+CALM[CN]);
当前需求矩阵(CDM):限定当前需求或时间点最大所请求的流的C×N矩阵。
如果CDM[i,j]=k,则客户端Ci可以最多请求流资源Rj的k个实例。
当前需要矩阵(CNM):指示每个客户端的流借用需要的C×N矩阵(需要=需求-已分配)。
CNM[i,j]=CDM[i,j]-CALM[i,j]。
在任一时间点,服务器确定响应于客户端所请求的借用而分配流借用是否是安全的。如果在给定时间点,系统处于安全状态,则所有客户端借用请求可以被满足,即针对所有客户端,它们的流资源需要小于用于系统中所有节点的当前流可用性。
CNM[i,j]<CAM[j]
如果客户端的流需要大于可用的流(CNM[i,j]>CAM[j]),则系统被认为是不安全的(不安全分配状态)并且负借用或零借用被许可给客户端,以及做出努力以将系统带到安全/稳定分配状态。
以下示例更详细地说明该过程。图2示出了包括节点或服务器202以及客户端204的集群。更具体地,图2示出了四个节点或服务器:N1、N2、N3和N4。图2还示出了使用服务器202的资源的客户端C1、C2和C3(客户端204)。在该示例中,分配给客户端204的服务器202的资源包括流206。流206可以包括备份流、恢复流、或其他数据流。
作为示例,假设在图2中,在每个节点上可用的TAM或总最大流如下表示:
N1 | N2 | N3 | N4 |
60 | 50 | 70 | 60 |
因此,N1具有60个用于分配给客户端的流。类似地,N2、N3和N4分别具有50个、70个和60个用于分配给客户端的流。
总最大流可以通过考虑服务器上处理器和核的数量以及通过确定流消耗多少处理功率来确定。可以以其他方式、诸如通过测试或通过用户输入来确定总最大流。
下面的CALM矩阵指示已经分配给客户端C1-C3的流借用。在该示例中,假设客户端C1、C2和C3具有已经分配给它们的以下流借用。
N1 | N2 | N3 | N4 | |
C1 | 10 | 20 | 20 | 10 |
C2 | 10 | 00 | 30 | 30 |
C3 | 10 | 20 | 10 | 00 |
CALM
CAM或当前可用流(或还没分配的流)可以根据上述TAM和CALM来计算。例如:根据以上TAM矩阵,节点N1具有它可以分配的最大60个流。节点N1已经分配给C1、C2和C3各10个流。因此N1上当前可用的总流为:
CAM[N1]=TAM[N1]–(CALM[0,C1]+CALM[0,C2]+CALM[0,C3]),即
CAM[N1]=60–(10+10+10)=30。
类似地,
CAM[N2]=50–(20+0+20)=10。
CAM[N3]=70–(20+30+10)=10。
CAM[N4]=60–(10+30+0)=20。
更通常来讲,CAM指示哪些节点或服务器正在提供分配给客户端204的流。如前所述,客户端204可以连接到任一服务器202并且因此可以从集群中的任一服务器202请求借用。
以下CDM限定在给定时间点的最大客户端流借用请求。换句话说,以下矩阵限定每个客户端在给定时间点可以从每个服务器请求多少个流。这些数量或最大值可以由管理员预先确定或设置。此外,这些数量可以是动态的以及可以基于客户端的数量和/或服务器的数量。当服务器和客户端的数量改变时,该时间点的流借用请求数量可能改变。
N1 | N2 | N3 | N4 | |
C1 | 30 | 30 | 20 | 20 |
C2 | 10 | 20 | 30 | 40 |
C3 | 10 | 30 | 50 | 00 |
CDM
通过从当前需求矩阵(CDM)减去当前已分配流矩阵(CALM),C1、C2和C3所需要的总流借用或CNM可以如下确定:
使用以上信息,可以确定每个客户端是否可以获取并使用其最大所请求的流借用。以下格式用于以下讨论,<xx xx xx xx>表示分别与节点N1、N2、N3和N4相关联的流。
例如,根据CNM,C1请求并获取N1的20个流借用,N2的10个流借用以及N4的10个流借用,以达到其最大所请求的借用。服务器可以在实际许可请求之前执行该确定。
在C1请求并获取之后,现在可用流如下确定:
<30 10 10 20>(CAM或可用流)–
<20 10 00 10>(由C1获取的流以达到C1的最大值)=
<10 00 10 10>(仍可用的流)
因此,集群仍具有N1的10个可用流、N2的00个可用流、N3的10个可用流以及N4的10个可用流。
接着,C1终止与流有关的进程并将N1的30个流借用、N2的30个流借用、N3的20个流借用和N4的20个流借用返回给系统。这些是与CDM中的C1行相关联的流。将其加到当前可用流:
<10 00 10 10>+<30 30 20 20>=<40 30 30 30>
因此,现在集群具有N1的40个总可用流、N2的30个总可用流、N3的30个总可用流以及N4的30个总可用流。该<40 30 30 30>小于或等于TAM<60 5070 60>或者用于集群的每个节点的总最大流,即<40 30 30 30><=<60 50 70 60>,因此系统状态是安全的,以分配和处理下一客户端请求。
现在C2要求20个N1的流和10个N4的流。然后C2终止并返回其所有的流借用。在该示例中且在这些步骤之后,可用流为或等于:
<40 30 30 30>(在C2的请求之前的当前可用流)–
<00 20 00 10>(由C2要求的流以达到C2的最大值)=
<40 30 30 30>-<00 20 00 10>=<40 10 30 20>(仍可用的流)+
<10 20 30 40>(与CDM中的C2行相关联的流)
<10 20 30 40>+<40 10 30 20>=<50 30 60 60>(在C2返回流借用之后的可用流)。
该<50 30 60 60>小于或等于TAM<60 50 70 60>或者用于集群的每个节点的总最大流,即
<50 30 60 60><=<60 50 70 60>,因此系统状态是安全的,以分配和处理下一客户端请求。
接下来,C3要求10个N2的流和40个N3的流,终止并返回所有流(返回流借用)。这导致以下:
<50 30 60 60>(在C3的请求之前的当前可用流)–
<00 10 40 00>(由C3要求的流以达到C3的最大值)+
<10 30 50 00>(由C3返回的流)=
<60 50 70 60>(可用流借用)。
该<60 50 70 60>小于或等于TAM<60 50 70 60>或者用于集群的每个节点的总最大流,即<60 50 70 60><=<60 50 70 60>,因此系统状态是安全的,以分配和处理下一客户端请求。
这表明了因为每个客户端都可以获取其所请求的最大流借用并使用流借用,因此如上所述,流分配状态是安全的且可以许可流借用给所有客户端。
流分配安全状态指示可以许可或分发流借用。本发明的实施方式预期了多种不同的可请求且可许可的借用。
下面的示例说明了这些类型的借用并说明了是否许可借用。
示例1:服务器许可“相等”借用。
以与之前的示例开始的状态相同的状态开始,假设C3请求节点N3上的10个流借用。在本示例中,存在足够的可用流,使得可以许可借用请求。在许可之后,新的流分配状态如下:
节点上的CAM或可用流:
N1 | N2 | N3 | N4 | |
可用流 | 30 | 10 | 00 | 20 |
当前分配给客户端204的流CALM现在如下(这里假设许可了C3的对N3的10个借用的请求):
CALM
现在,客户端的最大所请求的流如下:
N1 | N2 | N3 | N4 | |
C1 | 10 | 20 | 20 | 10 |
C2 | 10 | 00 | 30 | 30 |
C3 | 10 | 20 | 20 | 00 |
N1 | N2 | N3 | N4 | |
C1 | 30 | 30 | 20 | 20 |
C2 | 10 | 20 | 30 | 40 |
C3 | 10 | 30 | 50 | 00 |
CDM
利用该信息,可以确定新的流分配状态是否是安全的。
在以上示例中,C1可以获取N1的20个流、N2的10个流和N4的10个流,使用这些流并释放这些流。然后,C2可以获取N2的20个流和N4的10个流,使用这些流并释放这些流。最后,C3可以获取N2的10个流和N3的30个流,使用这些流并释放这些流。因此,该新的分配状态是安全的。
因为新的状态是安全的,因此许可了来自C3的对节点N3上的10个流借用的请求。这是服务器许可的流借用等于客户端所请求的流借用的数量的示例。
示例2:服务器许可“部分”借用
以与之前的示例开始的状态相同的状态开始,假设C3请求N3上的20个流借用。在本示例中,在许可所请求的流借用之前的可用流如下:
N1 | N2 | N3 | N4 |
30 | 10 | 10 | 20 |
在许可流借用之后的可用流如下:
N1 | N2 | N3 | N4 |
30 | 10 | <u>-10</u> | 20 |
由于在许可之后总的可用流的数量小于零,因此服务器可以决定许可10个流借用(这是部分许可,因为请求了20个流借用)。如之前关于前一示例所述,从N3向C3许可10个流借用导致安全分配状态。这示出了部分许可流借用的示例。
示例3:“零”或“负”流借用分配
从之前的开始状态,假设客户端C2请求10个来自节点N2的流借用。在本示例中,存在足够的流来许可流借用。假设请求被同意,新的状态将会是:
节点上的CAM或可用流:
N1 | N2 | N3 | N4 | |
可用流 | 30 | 00 | 10 | 20 |
根据初始状态的CALM或当前分配的流:
N1 | N2 | N3 | N4 | |
C1 | 10 | 20 | 20 | 10 |
C2 | 10 | 10 | 30 | 30 |
C3 | 10 | 20 | 10 | 00 |
CALM
CDM或该时间点最大所请求的流被确定如下:
N1 | N2 | N3 | N4 | |
C1 | 30 | 30 | 20 | 20 |
C2 | 10 | 20 | 30 | 40 |
C3 | 10 | 30 | 50 | 00 |
CDM
现在进行确定来确定新分配状态是否是安全的。假设客户端C1、C2和C3请求来自N2和N3的更多的流借用。
在该情况下,C1不能从N2、即从上述CNM获取足够的流,C1需要来自N2的10个流。然而,根据上述CAM,N2的可用流的数量为0。此外,C2也不能从N2获取足够的流,C3也不能从N2获取足够的流。
本示例中没有客户端能够获取足够的流借用来达到其最大允许的流借用。因此,该状态是不安全的并且服务器202可以节流客户端204中的一个或多个并通过分发负借用来从不安全分配状态恢复。换句话说,服务器202通过节流以及分发负借用来从该不安全状态恢复。
例如,服务器N2可以许可负20个流借用给C1。可选地,N2许可零借用给客户端C2和C3(即,客户端C2和C3节流并在一段时间之后重新尝试其请求)。客户端C1将其持有的20个流借用返回给N2,并且执行安全分配状态检查以确定状态是否是安全的。
流借用用于执行资源分配。流分配方法可以应用于许多类型的流。流分配方法可以通过向各种客户端许可负借用/零借用来维持稳定流分配状态。此外,本发明的实施方式允许如前所述的不同类型的借用许可。
更具体地,流借用可以是预取的。如果客户端未持有流借用(或者甚至客户端持有一些流借用)并且如果服务器上存在足够的空闲的流,则服务器可以在客户端请求时许可客户端更多的借用。
可以例如基于预期的工作量来请求预取的借用。这可以例如在恢复操作期间应用,在恢复操作时,流借用被预期用于通过读取备份来恢复流。
许可的借用还可以用于作出与设定客户端尺寸的高速缓存的尺寸有关的决定。这例如与利用用于恢复操作的流借用提前读取、执行智能提前读取、或使用借用来管理解决方案的成本有关。
部分许可借用可以允许部分完成操作。此外,可以通过分发负借用以及从客户端的高速缓存冲刷负数量的借用来从客户端取回流借用。换句话说,如果许可的借用的数量为零或负数,则客户端可以被节流。可以基于所请求的借用的类型来实现更多不同的借用分配方法。
图3A示出了用于执行资源分配的方法的示例。在一个示例中,可以定义302或确定与资源分配相关联的各种参数。例如,可以关于每个节点或服务器可以安全地支持多少个流来进行确定。这可以基于处理器/核的数量、内存、写入/读取参数等。例如,可以确定写入之间的关系、处理器或核消耗。如果预定数量的写入或者数据传输速率消耗1%的CPU,则以该传输速率的流可以对应于1个借用。此外,还可以确定每个客户端允许的流的最大数量。
方法300的该方面可以一次执行。然而,当系统中增加/移除节点或者当系统中增加/移除客户端时,可以重新评估方法300的该方面。这些值还可以考虑用于由服务器202执行的可能不涉及流或不涉及正在分配的特定资源的其他功能。此外,这些值还可以能够基于其他因素、例如当日时间来改变。例如,当处理器例如在较慢的时期不被其他任务所需时,其可以临时增加可用流的数量。
一旦已经定义了资源分配且服务器正在分配资源给客户端,方法300就施行或执行分配方法。例如,可以接收304流借用的请求。如之前所讨论的,该请求被评估,以确定所请求的分配是否会导致安全分配状态。因此,服务器可以通过假设许可该请求来评估306流状态或分配状态。这涉及考虑是否其他客户端还可以被分配其最大借用。如之前所述,在一个实施方式中,假设客户端可以最终请求、使用和释放其允许的最大借用。因此该评估确定如果许可该请求,则分配状态将会如何。
然后服务器根据该结果(所确定的分配状态)分发借用308给请求客户端(和/或其他客户端)。如果分配状态是安全的,则服务器可以分发等于该请求或者大于等于该请求的借用。如果分配状态是不安全的,则可以发生部分许可,这仍会导致安全分配状态。如果分配状态是不安全的,则服务器可以分发零或负借用。在一个示例中,零和/或负借用可以分发给任何客户端。
图3B示出了评估流状态的更多细节的示例。更具体地,图3B示出了图3A中所示的评估服务器流状态306的示例。因此,方法320示出了评估服务器流状态306的示例。在方法320的示例中,服务器可以计算TAM 322,其确定总的可用流。然后服务器可以查找CALM324。CALM标识当前被分配给客户端的流。
接着,时间点CAM被确定326。这通过TAM减去CALM来确定(CAM=TAM–CALM)。这允许服务器确定多少个流可用于分配。这可以从整个系统的角度和/或基于每个节点或每个服务器来确定。如以上所讨论的,可以基于每个服务器来确定可用流的数量。在一个示例中,这确保特定服务器的资源不会负担过重。另外,在一个实施方式中,这可以给予服务器或集群确定哪些服务器提供或分配资源的灵活性。例如,如果重定向能够导致安全分配状态,则服务器可以将请求重定向到不同的服务器。
接着,CDM被确定328以及通过CDM减去CALM来确定330CNM(CNM=CDM–CALM)。
在已经确定该信息之后,进行确定332流分配状态是安全的还是不安全的。如果流分配状态是不安全的,则许可零或负借用340。如果流分配状态是安全的,则许可借用。例如,可以许可部分借用334,可以许可相等借用336,或者可以许可预取借用338。然后分发借用308。在一个示例中,分发借用308可以是方法320的一部分并被并入许可借用334、336、338或340中。
图3C示出了确定流分配状态的示例。更具体地,图3C示出了图3B中的确定流分配状态是否安全332的示例。方法348可以针对每个客户端350来执行。从第一客户端350开始,确定352是否CNM大于CDM。因此,如果当前需要不大于当前需求,则状态为不安全354并且分发或许可负借用或零借用,如图3B所示。
当CNM大于CDM时,然后在许可客户端的最大流请求之后的流可用性被确定356。该计算可以在好像所请求的借用被许可的情况下执行以确定所得到的状态是否是安全的。此外,在一个实施方式中,所有客户端被当做整体来评估以确定流分配状态是否是安全的。
在一个示例中,流可用性(356)通过从当前可用流358的数量(这可以作为整体或者基于每个服务器或节点来进行)减去客户端获取的以达到客户端的最大需求360的流来确定。在需求被处理362之后该结果然后被加到由客户端返回的流。换句话说,在一个示例中,系统在假设客户端所请求的其最大可能的流被许可的情况下进行评估。
基于该确定356,关于可用流是否小于总可用矩阵进行确定364。若否,则状态为不安全的366。若是且所有客户端都已经被处理368,则状态是安全的372且如图3B所示可以许可借用。如果没有处理所有客户端,则处理下一客户端370。
因此,图3A-图3C示出了用于分配资源的方法的示例,使得系统的分配状态是安全的。当所提出的资源分配(例如,来自客户端的请求)导致不安全分配状态时,则分配可以是零或负数,这允许系统避免不安全分配状态或返回安全分配状态。
应当理解的是,可以以很多方式实现本发明,这些方式包括过程、装置、系统、设备、方法、或者诸如计算机可读存储介质的计算机可读介质或计算机网络,在计算机网络中,计算机程序指令通过光通信链接或电通信链接来发送。应用程序可以采用在通用计算机上执行的软件的形式或者可以被硬连线或硬编码在硬件中。在本申请中,这些实现方式、或本发明可以采用的任何其它形式都可以被称为技术。通常,所公开的过程中步骤的顺序可以改变而仍在本发明的范围内。
本文所公开的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如下面更详细讨论的。计算机可以包括处理器和承载指令的计算机存储介质,所述指令在被处理器执行时和/或使得所述指令被处理器执行时,执行本文所公开的方法中的任一者或多者。
如上所述,在本发明的范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于承载或带有其上存储的计算机可执行指令或数据结构的物理介质。这种计算机存储介质可以是能够被通用或专用计算机访问的任何可用的物理介质。
以示例而不是限制的方式,这种计算机存储介质可以包括硬件,所述硬件诸如固态硬盘(SSD)、RAM、ROM、EEPROM、CD-ROM、闪存、相变内存(“PCM”)、或者其他光盘存储器、磁盘存储器或其他磁存储设备、或者可用于以计算机可执行指令或数据结构的形式存储程序代码的任何其他硬件存储设备,所述计算机可执行指令或数据结构可以被通用或专用计算机系统访问和执行以实现本发明所公开的功能。以上的组合也应该被包括在计算机存储介质的范围内。这些介质也是非暂时性存储介质的示例,尽管本发明的范围未被限定到非暂时性存储介质的这些示例,但是非暂时性存储介质也包含基于云的存储系统和结构。
计算机可执行指令包括例如使得通用计算机、专用计算机、或专用处理设备执行某一功能或某一组功能的指令和数据。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,应理解的是,所附权利要求中限定的主题不必限定到上述特定特征或动作。相反,本文所公开的特定特征和动作被披露作为实现权利要求的示例形式。
如本文中所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或程序。本文描述的不同的组件、模块、引擎、和服务可以实现为例如作为单独的线程在计算系统上执行的对象或进程。尽管本文描述的系统和方法可以以软件实现,但是以硬件或者软件和硬件的组合实现也是可以的且可预期的。在本申请中,“计算实体”可以是如本文之前所限定的任何计算系统、或者在计算系统上运行的任何模块或模块组合。
在至少一些实例中,提供硬件处理器,该硬件处理器可操作成执行用于执行方法或过程(诸如本文所公开的方法和过程)的可执行指令。该硬件处理器可以包括或不包括其他硬件、诸如本文所公开的计算设备和系统的元件。
在计算环境方面,本发明的实施方式可以在客户端-服务器环境、网络环境或本地环境、或任何其他合适的环境中执行。用于本发明的至少一些实施方式的合适的操作环境包括云计算环境,在云计算环境中,客户端、服务器、和目标虚拟机中的一者或多者可以驻留并操作在云环境中。
本发明可以以其他特定形式实现而不脱离其精神或实质特征。所描述的实施方式在各方面均被考虑仅作为说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由之前的描述来指示。落入权利要求的等价含义和等价范围内的所有改变均被包含在权利要求的范围内。
Claims (20)
1.一种用于将服务器的集群的资源分配给客户端的方法,所述方法包括:
接收来自客户端的对流借用的请求;
评估在许可对流借用的所述请求时的分配状态,其中,通过考虑在每个所述客户端都被许可其最大允许的流借用时的分配状态来确定所述分配状态;以及
基于所述分配状态来分发借用。
2.根据权利要求1所述的方法,还包括限定用于分配的流的最大数量。
3.根据权利要求2所述的方法,其中,所述用于分配的流的最大数量与所述服务器的处理能力有关。
4.根据权利要求1所述的方法,其中,每个所述客户端都能够从任一所述服务器请求流借用。
5.根据权利要求1所述的方法,其中,评估所述分配状态还包括确定来自所述服务器的可用流的数量。
6.根据权利要求5所述的方法,还包括假设许可对流借用的所述请求。
7.根据权利要求6所述的方法,还包括:确定如果许可对流借用的所述请求,所述客户端是否能够获得其最大流借用。
8.根据权利要求7所述的方法,当所述客户端能够获得其最大流借用时,确定分配状态是安全的。
9.根据权利要求8所述的方法,其中,基于所述分配状态分发借用包括以下项中的至少一者:
以等于所述请求的量分发流借用;
以大于所述请求的量分发流借用;
以大于零且小于所述请求的量分发流借用;
分发零流借用;以及
分发负流借用。
10.根据权利要求1所述的方法,还包括:当所述分配状态是不安全的时,节流所述客户端,直至所述分配状态是安全的。
11.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括用于实现用于将服务器的集群的资源分配给客户端的方法的指令,所述方法包括:
接收来自客户端的对流借用的请求;
评估在许可对流借用的所述请求时的分配状态,其中,通过考虑在每个所述客户端都被许可其最大允许的流借用时的分配状态来确定所述分配状态;以及
基于所述分配状态来分发借用。
12.根据权利要求11所述的非暂时性计算机可读介质,还包括限定用于分配的流的最大数量。
13.根据权利要求12所述的非暂时性计算机可读介质,其中,所述用于分配的流的最大数量与所述服务器的处理能力有关。
14.根据权利要求11所述的非暂时性计算机可读介质,其中,每个所述客户端都能够从任一所述服务器请求流借用。
15.根据权利要求11所述的非暂时性计算机可读介质,其中,评估所述分配状态还包括确定来自所述服务器的可用流的数量。
16.根据权利要求15所述的非暂时性计算机可读介质,还包括假设许可对流借用的所述请求。
17.根据权利要求16所述的非暂时性计算机可读介质,还包括:确定如果许可对流借用的所述请求,所述客户端是否能够获得其最大流借用。
18.根据权利要求71所述的非暂时性计算机可读介质,当所述客户端能够获得其最大流借用时,确定分配状态是安全的。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,基于所述分配状态分发借用包括以下项中的至少一者:
以等于所述请求的量分发流借用;
以大于所述请求的量分发流借用;
以大于零且小于所述请求的量分发流借用;
分发零流借用;以及
分发负流借用。
20.根据权利要求19所述的非暂时性计算机可读介质,还包括:当所述分配状态是不安全的时,节流所述客户端,直至所述分配状态是安全的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/154,475 US11201828B2 (en) | 2018-10-08 | 2018-10-08 | Stream allocation using stream credits |
US16/154,475 | 2018-10-08 | ||
PCT/US2019/043970 WO2020076393A1 (en) | 2018-10-08 | 2019-07-29 | Stream allocation using stream credits |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112805683A true CN112805683A (zh) | 2021-05-14 |
Family
ID=67482976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066406.0A Pending CN112805683A (zh) | 2018-10-08 | 2019-07-29 | 使用流借用的流分配 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11201828B2 (zh) |
CN (1) | CN112805683A (zh) |
DE (1) | DE112019005043T5 (zh) |
GB (1) | GB2592143B (zh) |
WO (1) | WO2020076393A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11201828B2 (en) | 2018-10-08 | 2021-12-14 | EMC IP Holding Company LLC | Stream allocation using stream credits |
US11005775B2 (en) | 2018-10-08 | 2021-05-11 | EMC IP Holding Company LLC | Resource allocation using distributed segment processing credits |
US10630602B1 (en) * | 2018-10-08 | 2020-04-21 | EMC IP Holding Company LLC | Resource allocation using restore credits |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040267932A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US20070118653A1 (en) * | 2005-11-22 | 2007-05-24 | Sabre Inc. | System, method, and computer program product for throttling client traffic |
WO2008118608A1 (en) * | 2007-03-26 | 2008-10-02 | Microsoft Corporation | File server pipeline with denial of service mitigation |
US20090138616A1 (en) * | 2003-05-23 | 2009-05-28 | International Business Machines Corporation | Utilizing informed throttling to guarantee quality of service to i/o streams |
CN102655503A (zh) * | 2010-10-18 | 2012-09-05 | 阿瓦雅公司 | 使用共享资源池的资源分配 |
CN103227809A (zh) * | 2011-12-19 | 2013-07-31 | 西门子公司 | 用于在不同客户端之间管理资源以用于专用的方法和系统 |
CN103369041A (zh) * | 2013-07-09 | 2013-10-23 | 北京奇虎科技有限公司 | 基于云计算的资源分配方法及装置 |
CN107077387A (zh) * | 2014-09-09 | 2017-08-18 | 微软技术许可有限责任公司 | 用于虚拟数据中心的资源控制 |
CN107743611A (zh) * | 2015-04-29 | 2018-02-27 | 微软技术许可有限责任公司 | 动态云计算平台资源的最优分配 |
Family Cites Families (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3350702A (en) | 1965-01-26 | 1967-10-31 | Ruth A Herman | Infrared detection system for fault isolation and failure prediction |
US5453982A (en) | 1994-08-29 | 1995-09-26 | Hewlett-Packard Company | Packet control procedure between a host processor and a peripheral unit |
US5956321A (en) | 1995-03-16 | 1999-09-21 | Kabushiki Kaisha Toshiba | Stream scheduling system for real time stream server |
US5586121A (en) | 1995-04-21 | 1996-12-17 | Hybrid Networks, Inc. | Asymmetric hybrid access system and method |
US6115748A (en) | 1995-07-19 | 2000-09-05 | Fujitsu Network Communications, Inc. | Prioritized access to shared buffers |
US5812545A (en) | 1996-01-04 | 1998-09-22 | Orion Atlantic, L.P. | Full mesh satellite-based multimedia networking system |
US5778320A (en) * | 1996-10-04 | 1998-07-07 | Motorola, Inc. | Method for allocating communication resources among groups of communication units |
US6438141B1 (en) | 1998-04-20 | 2002-08-20 | Sun Microsystems, Inc. | Method and management of communications over media of finite bandwidth |
US6459901B1 (en) * | 1999-07-01 | 2002-10-01 | At&T Corp. | Wireless network resource allocation |
US6467024B1 (en) | 1999-09-07 | 2002-10-15 | International Business Machines Corporation | Accessing data volumes from data storage libraries in a redundant copy synchronization token tracking system |
US6502165B1 (en) | 1999-12-03 | 2002-12-31 | International Business Machines Corporation | Balanced access to data volumes with redundant copies stored in data storage libraries |
US6625709B2 (en) * | 2000-10-30 | 2003-09-23 | Microsoft Corporation | Fair share dynamic resource allocation scheme with a safety buffer |
JP4446738B2 (ja) | 2001-08-20 | 2010-04-07 | データセンターテクノロジーズ エヌ.ヴイ. | コンピュータファイルを効率的にバックアップするシステムと方法 |
US7155475B2 (en) * | 2002-02-15 | 2006-12-26 | Sony Corporation | System, method, and computer program product for media publishing request processing |
US7539735B2 (en) | 2002-03-06 | 2009-05-26 | International Business Machines Corporation | Multi-session no query restore |
US7398557B2 (en) | 2002-09-13 | 2008-07-08 | Sun Microsystems, Inc. | Accessing in a rights locker system for digital content access control |
US7539199B2 (en) | 2003-02-21 | 2009-05-26 | Gireesh Shrimali | Switch fabric scheduling with fairness and priority consideration |
US7269697B1 (en) | 2003-05-07 | 2007-09-11 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Apparatus and methodology for an input port scheduler |
JP4235506B2 (ja) * | 2003-08-14 | 2009-03-11 | 株式会社エヌ・ティ・ティ・ドコモ | 送信装置、中継装置およびプログラム |
ATE492097T1 (de) | 2003-10-06 | 2011-01-15 | Ericsson Telefon Ab L M | Koordinierte datenflusssteuerung und datenpufferteilung in umts |
JP4611319B2 (ja) | 2004-02-16 | 2011-01-12 | デービーズ,クリストファー,マイケル | ネットワークアーキテクチャ |
US7478158B1 (en) | 2004-03-01 | 2009-01-13 | Adobe Systems Incorporated | Bandwidth management system |
US7583658B1 (en) * | 2004-06-17 | 2009-09-01 | Cisco Technology, Inc. | Signal processing allocation using credit prediction |
US7493426B2 (en) | 2005-01-31 | 2009-02-17 | International Business Machines Corporation | Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control |
US7853774B1 (en) | 2005-03-25 | 2010-12-14 | Tilera Corporation | Managing buffer storage in a parallel processing environment |
EP1762935B1 (de) * | 2005-09-12 | 2010-02-17 | Siemens Aktiengesellschaft | Verfahren zur Steuerung eines Zugriffs auf Ressourcen eines Datenverarbeitungssystems und Steuerungsprogramm |
US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
US7685306B2 (en) * | 2006-01-20 | 2010-03-23 | Microsoft Corporation | Streaming content navigation |
JP2007241419A (ja) * | 2006-03-06 | 2007-09-20 | Fujitsu Ltd | 入力支援装置、入力支援プログラムおよび入力支援方法 |
US7698478B2 (en) | 2006-09-19 | 2010-04-13 | Apple Inc. | Managed credit update |
US8584130B2 (en) * | 2006-11-30 | 2013-11-12 | International Business Machines Corporation | Allocation of resources on computer systems |
US8127099B2 (en) | 2006-12-26 | 2012-02-28 | International Business Machines Corporation | Resource recovery using borrowed blocks of memory |
US20080307094A1 (en) | 2007-06-11 | 2008-12-11 | Olli Karonen | Association of peer-to-peer contribution credits with multiple devices |
US7707248B2 (en) | 2007-06-25 | 2010-04-27 | Microsoft Corporation | Credit-based peer-to-peer storage |
US20090171812A1 (en) * | 2007-12-31 | 2009-07-02 | Apple Inc. | Media streams and media store |
US8306036B1 (en) * | 2008-06-20 | 2012-11-06 | F5 Networks, Inc. | Methods and systems for hierarchical resource allocation through bookmark allocation |
US20100031157A1 (en) * | 2008-07-30 | 2010-02-04 | Robert Neer | System that enables a user to adjust resources allocated to a group |
US8374576B2 (en) * | 2008-12-04 | 2013-02-12 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for generating resource utilization alerts through communication terminals |
US8045472B2 (en) | 2008-12-29 | 2011-10-25 | Apple Inc. | Credit management when resource granularity is larger than credit granularity |
US20120327779A1 (en) * | 2009-06-12 | 2012-12-27 | Cygnus Broadband, Inc. | Systems and methods for congestion detection for use in prioritizing and scheduling packets in a communication network |
US8085801B2 (en) * | 2009-08-08 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Resource arbitration |
US20110184998A1 (en) | 2010-01-22 | 2011-07-28 | Palahnuk Samuel L | Universally accessible encrypted internet file system for wired and wireless computing devices supplanting synchronization, backup and email file attachment |
US8381217B1 (en) | 2010-04-30 | 2013-02-19 | Netapp, Inc. | System and method for preventing resource over-commitment due to remote management in a clustered network storage system |
JP5541718B2 (ja) * | 2010-08-19 | 2014-07-09 | キヤノン株式会社 | 撮像装置及びその欠陥画素検出方法 |
EP2705632B8 (en) * | 2011-05-06 | 2018-09-12 | Citrix Systems, Inc. | Systems and methods for cloud bridging between public and private clouds |
US8863140B2 (en) | 2011-08-29 | 2014-10-14 | Oracle International Corporation | Method for resource management allocating and freeing credits from and to a resource credit tree |
US20130061233A1 (en) | 2011-09-02 | 2013-03-07 | Exludus Inc. | Efficient method for the scheduling of work loads in a multi-core computing environment |
US10200493B2 (en) | 2011-10-17 | 2019-02-05 | Microsoft Technology Licensing, Llc | High-density multi-tenant distributed cache as a service |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US8763154B2 (en) | 2012-01-23 | 2014-06-24 | Verizon Patent And Licensing Inc. | Federated authentication |
US9619127B2 (en) * | 2012-04-17 | 2017-04-11 | Netzero Wireless, Inc. | User controlled data speed selector systems and methods |
US9507639B2 (en) | 2012-05-06 | 2016-11-29 | Sandisk Technologies Llc | Parallel computation with multiple storage devices |
US9495379B2 (en) | 2012-10-08 | 2016-11-15 | Veritas Technologies Llc | Locality aware, two-level fingerprint caching |
US9055078B2 (en) | 2013-01-10 | 2015-06-09 | International Business Machines Corporation | Token-based flow control of messages in a parallel computer |
KR20160004365A (ko) | 2013-06-29 | 2016-01-12 | 인텔 코포레이션 | 크레딧 기반의 중재를 위한 서비스 레이트 재분배 |
US9477526B2 (en) | 2013-09-04 | 2016-10-25 | Nvidia Corporation | Cache utilization and eviction based on allocated priority tokens |
US20160005007A1 (en) * | 2014-07-04 | 2016-01-07 | Flashback Survey, Inc. | Methods and systems for using scanable codes to obtain maintenance and reminder services |
US10110300B2 (en) | 2014-09-08 | 2018-10-23 | Hughes Network Systems, Llc | Bandwidth management across logical groupings of access points in a shared access broadband network |
US10419621B2 (en) * | 2014-11-14 | 2019-09-17 | Tracfone Wireless, Inc. | Methods, systems and applications for managing wireless services on a wireless device |
CN106301805B (zh) | 2015-05-11 | 2019-12-17 | 华为技术有限公司 | 一种策略和计费执行功能装置、在线计费装置及在线计费方法 |
WO2017070797A1 (en) * | 2015-10-30 | 2017-05-04 | Investel Capital Corporation | Data network access selection, migration and quality management systems and methods |
US10115214B2 (en) * | 2015-11-03 | 2018-10-30 | Verizon Patent And Licensing Inc. | Shared data splitting interface |
CN105487818B (zh) | 2015-11-27 | 2018-11-09 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US20170208120A1 (en) | 2016-01-15 | 2017-07-20 | Google Inc. | Probabilistic throttling |
US10146665B2 (en) | 2016-03-24 | 2018-12-04 | Oracle International Corporation | Systems and methods for providing dynamic and real time simulations of matching resources to requests |
US10146684B2 (en) | 2016-10-24 | 2018-12-04 | Datrium, Inc. | Distributed data parallel method for reclaiming space |
WO2018156926A1 (en) | 2017-02-23 | 2018-08-30 | John Mezzalingua Associates, LLC | System and method for adaptively tracking and allocating capacity in a broadly-dispersed wireless network |
US10536482B2 (en) | 2017-03-26 | 2020-01-14 | Microsoft Technology Licensing, Llc | Computer security attack detection using distribution departure |
US11500681B2 (en) | 2017-06-29 | 2022-11-15 | Intel Corporation | Technologies for managing quality of service platform interconnects |
US10469395B2 (en) | 2017-08-31 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | Packet transmission credit allocation |
US20190348158A1 (en) | 2018-05-11 | 2019-11-14 | Michigan Health Information Network Shared Services | Systems and methods for managing data privacy |
US10798140B1 (en) * | 2018-07-16 | 2020-10-06 | Amazon Technologies, Inc. | Stream data record reads using push-mode persistent connections |
US11201828B2 (en) | 2018-10-08 | 2021-12-14 | EMC IP Holding Company LLC | Stream allocation using stream credits |
-
2018
- 2018-10-08 US US16/154,475 patent/US11201828B2/en active Active
-
2019
- 2019-07-29 GB GB2104670.1A patent/GB2592143B/en active Active
- 2019-07-29 WO PCT/US2019/043970 patent/WO2020076393A1/en active Application Filing
- 2019-07-29 CN CN201980066406.0A patent/CN112805683A/zh active Pending
- 2019-07-29 DE DE112019005043.5T patent/DE112019005043T5/de active Pending
-
2021
- 2021-11-22 US US17/532,476 patent/US11936568B2/en active Active
-
2024
- 2024-02-09 US US18/437,988 patent/US20240187351A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138616A1 (en) * | 2003-05-23 | 2009-05-28 | International Business Machines Corporation | Utilizing informed throttling to guarantee quality of service to i/o streams |
US20040267932A1 (en) * | 2003-06-30 | 2004-12-30 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US20070118653A1 (en) * | 2005-11-22 | 2007-05-24 | Sabre Inc. | System, method, and computer program product for throttling client traffic |
WO2008118608A1 (en) * | 2007-03-26 | 2008-10-02 | Microsoft Corporation | File server pipeline with denial of service mitigation |
CN102655503A (zh) * | 2010-10-18 | 2012-09-05 | 阿瓦雅公司 | 使用共享资源池的资源分配 |
CN103227809A (zh) * | 2011-12-19 | 2013-07-31 | 西门子公司 | 用于在不同客户端之间管理资源以用于专用的方法和系统 |
CN103369041A (zh) * | 2013-07-09 | 2013-10-23 | 北京奇虎科技有限公司 | 基于云计算的资源分配方法及装置 |
CN107077387A (zh) * | 2014-09-09 | 2017-08-18 | 微软技术许可有限责任公司 | 用于虚拟数据中心的资源控制 |
CN107743611A (zh) * | 2015-04-29 | 2018-02-27 | 微软技术许可有限责任公司 | 动态云计算平台资源的最优分配 |
Also Published As
Publication number | Publication date |
---|---|
GB202104670D0 (en) | 2021-05-12 |
DE112019005043T5 (de) | 2021-09-16 |
US20220086097A1 (en) | 2022-03-17 |
WO2020076393A1 (en) | 2020-04-16 |
US11201828B2 (en) | 2021-12-14 |
US20240187351A1 (en) | 2024-06-06 |
US20200112516A1 (en) | 2020-04-09 |
GB2592143B (en) | 2023-01-18 |
GB2592143A (en) | 2021-08-18 |
US11936568B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chowdhury et al. | Leveraging endpoint flexibility in data-intensive clusters | |
US7694082B2 (en) | Computer program and method for managing resources in a distributed storage system | |
CN108667867B (zh) | 数据存储方法及装置 | |
US9229997B1 (en) | Embeddable cloud analytics | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
KR101957006B1 (ko) | 네트워크 액세스가능 블록 저장을 위한 조정된 승인 제어 | |
US11936568B2 (en) | Stream allocation using stream credits | |
Xie et al. | Pandas: robust locality-aware scheduling with stochastic delay optimality | |
Bok et al. | An efficient MapReduce scheduling scheme for processing large multimedia data | |
US11765099B2 (en) | Resource allocation using distributed segment processing credits | |
EP3158478B1 (en) | Embeddable cloud analytics | |
US20140351550A1 (en) | Memory management apparatus and method for threads of data distribution service middleware | |
CN112805684A (zh) | 使用恢复借用的资源分配 | |
CN110178119B (zh) | 处理业务请求的方法、装置与存储系统 | |
KR101661475B1 (ko) | 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 | |
Chen et al. | A real-time scheduling strategy based on processing framework of Hadoop | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
Tang et al. | Accelerating Ceph with RDMA and NVMe-oF | |
US10135750B1 (en) | Satisfaction-ratio based server congestion control mechanism | |
US11048554B1 (en) | Correlated volume placement in a distributed block storage service | |
EP3962031A1 (en) | System, apparatus and method for advanced monitoring in an edge system | |
Shan et al. | Heterogeneous MacroTasking (HeMT) for Parallel Processing in the Public Cloud | |
Yang et al. | A New MapReduce Framework Based on Virtual IP Mechanism and Load Balancing Strategy | |
CN107193648A (zh) | 一种基于numa架构的性能优化方法及系统 |
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 |