CN112805684A - 使用恢复借用的资源分配 - Google Patents
使用恢复借用的资源分配 Download PDFInfo
- Publication number
- CN112805684A CN112805684A CN201980066453.5A CN201980066453A CN112805684A CN 112805684 A CN112805684 A CN 112805684A CN 201980066453 A CN201980066453 A CN 201980066453A CN 112805684 A CN112805684 A CN 112805684A
- Authority
- CN
- China
- Prior art keywords
- client
- borrowing
- server
- recovery
- flow
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 91
- 238000013468 resource allocation Methods 0.000 title claims description 19
- 238000000034 method Methods 0.000 claims abstract description 62
- 239000011159 matrix material Substances 0.000 description 214
- 238000002474 experimental method Methods 0.000 description 48
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 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
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 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
- 238000004513 sizing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/805—QOS or priority aware
-
- 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/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了用于分配资源的系统和方法。使用恢复借用分配诸如流的资源。以确保系统在安全分配状态下操作的方式将借用分发给客户端。借用不仅可用于分配资源,还可在必要时用于节流客户端。可以全部地、部分地、和以大于请求的数量地许可借用。还可以分发零或负借用来节流客户端。恢复借用与读取相关联并且可以通过确定CPU/核能够支持多少个借用来进行分配。该最大数量可以在与服务器连接的客户端之间划分。
Description
技术领域
本发明的实施方式涉及用于分配资源的系统和方法。更具体地,本发明的实施方式涉及用于在执行数据保护操作时进行流或资源分配的系统和方法,所述数据保护操作诸如恢复操作。附录A构成本申请的一部分并且通过引用以其整体并入本申请中。
背景技术
在单个节点或分布式/超出尺寸范围的集群环境中,分配资源可能是具有挑战性的任务。当尝试确保将资源公平地分配给使用可用资源的所有客户端时,该任务变得更复杂。例如,任何一个客户端都不应该能够具有可用资源的不公平的大份额。同时,需要满足服务质量(QOS)要求。
更具体地,数据保护操作(例如,备份、恢复)通常与资源分配问题和服务质量(QOS)问题相关联。当一些客户端正在使用过多的资源而其他客户端因此被忽视或不能获得必要的资源时,这些问题就会出现。另外,当对资源的需求超过节点或集群所能承受的时,QOS通常受损。为了避免这种状况或校正这种状况,需要在任一特定时间节流来自任一特定客户端的请求。因此,需要用于公平地分配资源而同时确保或满足服务质量要求的系统和方法。
附图说明
为了描述能够获得本申请的至少一些方面的方式,将参考在附图中示出的本申请的具体实施方式来进行更具体的描述。应理解这些附图仅示出本发明的示例性实施方式而因此不认为是限制本发明的范围,将通过使用附图利用附加的特殊性和细节来描述和解释本发明的实施方式,附图中:
图1示出了配置成分配资源给客户端的服务器的示例;
图2进一步示出了在集群资源或服务器资源的情况下包括流分配的资源分配;
图3A示出了用于在计算环境中执行资源分配、特别是用于分配流的方法的示例;
图3B示出了用于评估节点或服务器或集群的流分配状态的方法的示例;以及
图3C进一步示出了图3B的用于评估流分配状态的方法;
图4示出了将恢复借用分配给请求客户端的系统的示例;以及
图5是示出了用于在诸如恢复操作的数据保护操作期间执行资源分配的方法的示例的流程图。
具体实施方式
本发明的实施方式涉及用于执行数据保护操作的系统和方法。数据保护操作的示例包括、但不限于资源分配操作,资源分配操作包括流分配、读取分配、分段处理分配等。数据保护操作还可以包括备份操作、恢复操作、去重操作、镜像操作、数据复制操作等或其组合。
本发明的实施方式涉及用于在计算环境中分配资源的系统和方法。本发明的实施方式还涉及在资源分配的情况下用于测量和改善服务质量以及用于对客户端节流的系统和方法。本发明的实施方式还涉及例如在执行恢复操作时用于分配流给客户端、分配恢复借用(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 50 70 60>或者用于集群的每个节点的总最大流,即<40 30 30 30><=<60 50 70 60>,因此系统状态是安全的,以分配和处理下一客户端请求。
现在C2要求N1的20个流和N4的10个流。然后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要求N2的10个流和N3的40个流,终止并返回所有流(返回流借用)。这导致以下:
<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个借用的请求):
N1 | N2 | N3 | N4 | |
C1 | 10 | 20 | 20 | 10 |
C2 | 10 | 00 | 30 | 30 |
C3 | 10 | 20 | 20 | 00 |
CALM
现在,客户端的最大所请求的流如下:
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 | <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来确定CNM 330(CNM=CDM–CALM)。
在已经确定该信息之后,进行确定332流分配状态是安全的还是不安全的。如果流分配状态是不安全的,则许可零或负借用340。如果流分配状态是安全的,则许可借用。例如,可以许可部分借用334,可以许可相等借用336,或者可以许可预取借用338。然后分发借用308。在一个示例中,分发借用308可以是方法320的一部分并被并入许可借用334、336、338或340中。
图3C示出了确定流分配状态的示例。更具体地,图3C示出了图3B中的确定流分配状态是否安全332的示例。方法348可以针对每个客户端350来执行。从第一客户端350开始,确定352CNM是否大于CDM。因此,如果当前需要不大于当前需求,则状态为不安全354并且分发或许可负借用或零借用,如图3B所示。
当CNM大于CDM时,然后在许可客户端的最大流请求之后的流可用性被确定356。该计算可以在好像所请求的借用被许可的情况下执行以确定所得到的状态是否是安全的。此外,在一个实施方式中,所有客户端被当做整体来评估以确定流分配状态是否是安全的。
在一个示例中,流可用性(356)通过当前可用流358的数量(这可以作为整体或者基于每个服务器或节点来进行)减去客户端获取的以达到客户端的最大需求360的流来确定。在需求被处理362之后该结果然后被加到由客户端返回的流。换句话说,在一个示例中,系统在假设客户端所请求的其最大可能的流被许可的情况下进行评估。
基于该确定356,关于可用流是否小于总可用矩阵进行确定364。若否,则状态为不安全的366。若是且所有客户端都已经被处理368,则状态是安全的372且如图3B所示可以许可借用。如果没有处理所有客户端,则处理下一客户端370。
因此,图3A-图3C示出了用于分配资源的方法的示例,使得系统的分配状态是安全的。当所提出的资源分配(例如,来自客户端的请求)导致不安全分配状态时,则分配可以是零或负数,这允许系统避免不安全分配状态或返回安全分配状态。
除了流借用,本发明的实施方式还涉及恢复借用,恢复借用是借用的另一示例。恢复操作可以包括从由备份服务器维持的备份中读取数据以及将从备份中读取的数据传输或发送到恢复位置或设备。在一个示例中,资源分配系统和方法可以仅依赖于可以根据数据定义的恢复借用(例如,1个借用=256MG或500MB、或1GB等的所读取的数据)、和/或如之前所述的流借用。
恢复借用通过帮助客户端进行预读高速缓存分配/尺寸设置、帮助客户端执行智能预读、和改善恢复操作的性能来改善客户端或服务器的操作。此外,本发明的实施方式有助于仅恢复所需的数据。这可以避免与不需要恢复操作的数据相关联的成本。
更具体地,客户端经常实施预读高速缓存并可以读取所需要的更多数据。这可能成为关心的事,例如在云环境中,其中成本根据每个恢复字节来确定。换句话说,读取比所需要的数据更多的数据可能是昂贵的。本发明的实施方式允许基于正被恢复的数据的大小来设置或调整客户端的预读高速缓存或缓冲器的大小。这是有用的,因为在一个示例中,客户端可能不知道待恢复的数据的大小。服务器可以通过提供预取的恢复借用来帮助分配客户端预读高速缓存和设置客户端预读高速缓存的大小。
例如,图4示出了使用恢复借用和/或流借用执行恢复操作的客户端的示例。服务器(或集群)能够支持使用恢复借用和/或流借用的多个客户端。
在图4中,客户端402正在将被恢复的数据406恢复到存储器404(或其他设备/机器)。被恢复的数据406可以是数据库、虚拟机、文件系统等。当执行恢复操作时,从备份412(例如,特定备份)中恢复被恢复的数据4006。从备份412中读取的数据因此由服务器408读取并传输到客户端402。然后客户端将数据写入被恢复的数据406。
在该示例中,客户端402可以从服务器408(例如,备份服务器)请求恢复借用。服务器408可以维持分配表414,分配表414允许跟踪恢复借用和/或流借用。在该示例中,客户端402不知道待恢复的数据集的大小。然而,服务器408可以知道该数据集的大小,因为其上下文存在于服务器408上。
仅作为示例,假设256MB的数据与一个恢复借用相关联,则可以发生以下情景。客户端402想要读取1GB的数据,因此可以从服务器408请求4个恢复借用。客户端也可以设置“预取”标志,该标志向服务器408指示这是连续的恢复以及服务器可以许可比所请求的更多的借用。如果待恢复的数据集为4GB,则服务器408可以许可16个恢复借用给客户端402,尽管只请求了4个恢复借用。
许可客户端402的恢复借用的数量可以用于调节客户端的预读高速缓存或缓冲器416的大小。例如,大的借用数量可以使客户端402将预读缓冲器或高速缓存的大小增大到能够容纳与所许可的借用相关联的数据量的大小。可替选地,可以以以下方式设置缓冲器416的大小:考虑高速缓存的数据被恢复到被恢复的数据406的速率。在一个示例中,缓冲器416的大小可以动态地适应于客户端402所持有的借用的数量。
如果恢复操作发生在云环境中,则服务器408可以忽略预取标志而选择以客户端所请求的量来许可恢复借用的数量。因为在云环境中预读以及恢复或读取比所需的数据更多的数据可能是昂贵的,因此可以这样做。
由服务器408许可的恢复借用的数量可以以与许可流借用的方式相似的方式被许可。所许可的恢复借用的量可以等于客户端所请求的恢复借用的数量、小于所请求的恢复借用的数量、大于所请求的恢复借用的数量、为零、或为负数。
根据客户端402所接收的恢复借用的数量,客户端402将使用恢复借用来执行恢复操作。恢复借用被用于读取数据,并且随着数据被读取,恢复借用相应地被使用或被返回。每个数据块的读取的使用都将导致使用一个恢复借用。
如果所许可的恢复借用的数量为零或负值,则是指示客户端节流。由此,恢复请求不能被执行(或者可以仅部分被执行)并且由客户端将恢复借用返回给服务器。这允许服务器实现安全分配状态。
如果恢复操作已经完成并且如果客户端402具有在其连接结构中高速缓存的额外的恢复借用,则客户端402可以选择最终释放那些恢复借用。服务器408可以更新其内部借用记账数据库、即分配表414,以对从特定客户端释放的恢复借用进行记账。
当许可借用时(不管类型如何),服务器408可以执行借用分配方法。本发明的实施方式预期到许多指标可用于确定借用分配或借用分配状态。示例包括机器能力(连接、处理器、核、内存大小、内存类型、客户端连接、现存的流、可用资源等或其组合。
图5示出了用于分配恢复借用的方法的示例。方法500可以包括不是每次执行方法都执行的步骤或动作。在图5中,平均消耗处理器或核(例如,CPU或中央处理单元)的1%的读取的量或数量被确定或定义502。尽管该数量通常是近似值,但是通过进行数据的经验恢复来收集统计数据可以用于限制该数量。在不同大小和/或数据类型的各种恢复运行或操作期间CPU利用的百分比可以被获得或测量。例如,这些观察的平均数可以用于计算数据的消耗1%的读取的数量。例如,如果观察到恢复1GB的数据消耗10%的CPU并导致平均10000个读取请求,则可以估计向服务器的1000个读取请求消耗1%的CPU。该结果可用于确定待分配给请求客户端的恢复借用的数量。
接着,每个核所允许的读取的平均数量被确定504。在一个示例中,这通过将消耗1%的CPU的读取的数量与每个核的空闲CPU的平均百分比相乘来确定。如果每个核的空闲CPU的平均百分比小于阈值(例如,2%),则许可所有客户端的借用为零或负数。
接着,每个客户端的最大借用被确定506。这可以通过将平均每个核允许的读取乘以CPU核的数量然后再除以客户端连接的数量来确定。每个客户端的最大借用表示客户端可以获取的借用的最大数量。
分配表对已经分发给客户端的借用进行记账。例如,如果客户端的最大借用是100个且已经被许可60个,则对50个恢复借用的请求可能导致许可部分借用或零借用或负借用。分配表随着借用被许可、释放等而更新。
在一个示例中,每个客户端借用的数量被确定508。这不同于最大借用,因为该动作或步骤可以考虑能够被调节或可配置的调谐因子。该调谐因子允许本发明的实施方式将预留值计入正在分配的资源中。该调谐因子可以为最大恢复借用的50%-70%。
接着,借用可以被分发到请求客户端510。举例来讲,所分发的借用的数量可以仅通过使用每个客户端所请求的恢复借用和所计算的借用的最小值来确定。如果客户端已经请求预取,则所分发的恢复借用的数量可以是每个客户端所请求的恢复借用和所计算的借用中的最大值。
考虑以下示例。如果平均消耗1%的CPU的读取的数量为1000个且每个核的空闲CPU的平均百分比为50%,则每个核平均允许的读取为((1000*0.5)=500)。如果CPU核的数量为4个且客户端的数量为10个,则每个客户端的最大借用为((500*4)/10=200)。如果调谐因子为50%,则所计算的每个客户端的借用为(200*0.5=100)。因此,每个客户端的最大借用与调谐的或计算的每个客户端的借用是不同的。
如果客户端然后请求40个恢复借用,则所许可的恢复借用为MIN(40,100)=40。因此许可40个借用。如果客户端请求预取,则所许可的借用为MAX(40,100)=100。因此许可100个借用。如果从云进行恢复,则可以忽略预取,在这种情况下,在该示例中所许可的借用可以为40个。
每次请求恢复借用时,本发明的实施方式都可以确保许可不会导致不安全分配状态。例如,请求超过客户端的最大借用的借用可能导致不安全分配状态。此外,当许可借用时还可以考虑该客户端和其他客户端已经使用的借用。另外,当确定分配状态时,可以确定每个核的空闲CPU的平均百分比。如果许可将空闲CPU的平均百分比降到低于阈值,则该许可可以是零借用或负借用。
在另一示例中,可以以类似于流借用的方式来管理恢复借用,使得对恢复借用的每个请求都在所有恢复借用可用的情况中考虑而不是在每个客户端所允许的最大借用或基于调谐因子计算的恢复借用的情况中考虑。
在一个示例中,恢复借用是流借用的示例,这至少因为正在恢复的数据也是从服务器到客户端的流。然而,这些借用类型也可以一起使用。例如,流借用可用于管理流的数量,而恢复借用可以确定特定客户端可以读取多少个数据用于客户端的所有流。
应当理解的是,可以以很多方式实现本发明,这些方式包括过程、装置、系统、设备、方法、或者诸如计算机可读存储介质的计算机可读介质或计算机网络,在计算机网络中,计算机程序指令通过光通信链接或电通信链接来发送。应用程序可以采用在通用计算机上执行的软件的形式或者可以被硬连线或硬编码在硬件中。在本申请中,这些实现方式、或本发明可以采用的任何其它形式都可以被称为技术。通常,所公开的过程中步骤的顺序可以改变而仍在本发明的范围内。
本文所公开的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如下面更详细讨论的。计算机可以包括处理器和承载指令的计算机存储介质,所述指令在被处理器执行时和/或使得所述指令被处理器执行时,执行本文所公开的方法中的任一者或多者。
如上所述,在本发明的范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于承载或带有其上存储的计算机可执行指令或数据结构的物理介质。这种计算机存储介质可以是能够被通用或专用计算机访问的任何可用的物理介质。
以示例而不是限制的方式,这种计算机存储介质可以包括硬件,所述硬件诸如固态硬盘(SSD)、RAM、ROM、EEPROM、CD-ROM、闪存、相变内存(“PCM”)、或者其他光盘存储器、磁盘存储器或其他磁存储设备、或者可用于以计算机可执行指令或数据结构的形式存储程序代码的任何其他硬件存储设备,所述计算机可执行指令或数据结构可以被通用或专用计算机系统访问和执行以实现本发明所公开的功能。以上的组合也应该被包括在计算机存储介质的范围内。这些介质也是非暂时性存储介质的示例,尽管本发明的范围未被限定到非暂时性存储介质的这些示例,但是非暂时性存储介质也包含基于云的存储系统和结构。
计算机可执行指令包括例如使得通用计算机、专用计算机、或专用处理设备执行某一功能或某一组功能的指令和数据。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,应理解的是,所附权利要求中限定的主题不必限定到上述特定特征或动作。相反,本文所公开的特定特征和动作被披露作为实现权利要求的示例形式。
如本文中所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或程序。本文描述的不同的组件、模块、引擎、和服务可以实现为例如作为单独的线程在计算系统上执行的对象或进程。尽管本文描述的系统和方法可以以软件实现,但是以硬件或者软件和硬件的组合实现也是可以的且可预期的。在本申请中,“计算实体”可以是如本文之前所限定的任何计算系统、或者在计算系统上运行的任何模块或模块组合。
在至少一些实例中,提供硬件处理器,该硬件处理器可操作成执行用于执行方法或过程(诸如本文所公开的方法和过程)的可执行指令。该硬件处理器可以包括或不包括其他硬件、诸如本文所公开的计算设备和系统的元件。
在计算环境方面,本发明的实施方式可以在客户端-服务器环境、网络环境或本地环境、或任何其他合适的环境中执行。用于本发明的至少一些实施方式的合适的操作环境包括云计算环境,在云计算环境中,客户端、服务器、和目标虚拟机中的一者或多者可以驻留并操作在云环境中。
本发明可以以其他特定形式实现而不脱离其精神或实质特征。所描述的实施方式在各方面均被考虑仅作为说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由之前的描述来指示。落入权利要求的等价含义和等价范围内的所有改变均被包含在权利要求的范围内。
附录A
结果:
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验1:客户端C0从服务器N0请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验2:客户端C0从服务器N0请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验3:客户端C0从服务器N0请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验4:客户端C0从服务器N0请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验5:客户端C0从服务器N1请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验6:客户端C0从服务器N1请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
系统分配处于稳定状态。
--------------
实验7:客户端C0从服务器N1请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验8:客户端C0从服务器N1请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验9:客户端C0从服务器N2请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验10:客户端C0从服务器N2请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验11:客户端C0从服务器N2请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验12:客户端C0从服务器N2请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验13:客户端C0从服务器N3请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验14:客户端C0从服务器N3请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验15:客户端C0从服务器N3请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验16:客户端C0从服务器N3请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验17:客户端C1从服务器N0请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验18:客户端C1从服务器N0请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验19:客户端C1从服务器N0请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(20)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验20:客户端C1从服务器N0请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(20)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验21:客户端C1从服务器N1请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=2许可负借用=(10)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验22:客户端C1从服务器N1请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验23:客户端C1从服务器N1请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验24:客户端C1从服务器N1请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验25:客户端C1从服务器N2请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验26:客户端C1从服务器N2请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验27:客户端C1从服务器N2请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验28:客户端C1从服务器N2请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验29:客户端C1从服务器N3请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验30:客户端C1从服务器N3请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验31:客户端C1从服务器N3请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验32:客户端C1从服务器N3请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验33:客户端C2从服务器N0请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验34:客户端C2从服务器N0请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验35:客户端C2从服务器N0请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(20)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验36:客户端C2从服务器N0请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(20)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=0向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验37:客户端C2从服务器N1请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(20)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验38:客户端C2从服务器N1请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(20)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验39:客户端C2从服务器N1请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(20)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验40:客户端C2从服务器N1请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=1向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(20)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验41:客户端C2从服务器N2请求10个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验42:客户端C2从服务器N2请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验43:客户端C2从服务器N2请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验44:客户端C2从服务器N2请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验45:客户端C2从服务器N3请求10个流。--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
系统处于安全状态。
流分配处于稳定状态。
--------------
实验46:客户端C2从服务器N3请求20个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验47:客户端C2从服务器N3请求30个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
--------------
实验48:客户端C2从服务器N3请求40个流。
--------------
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
通过从服务器=1向客户端=1许可负借用=(10)来进行自身安全检查
通过从服务器=2向客户端=2许可负借用=(30)来进行自身安全检查
系统未处于安全状态。
在许可负借用之后,重新计算流分配状态....
可用流
每个客户端的流分配矩阵(当前分配)
每个客户端的最大流要求矩阵
每个客户端的流需要矩阵
通过从服务器=3向客户端=0许可负借用=(10)来进行自身安全检查
系统处于安全状态。
流分配处于稳定状态。
Claims (20)
1.一种用于将服务器的资源分配给连接到所述服务器的客户端并从所述服务器恢复数据的方法,所述方法包括:
从客户端接收对恢复借用的请求,其中每个所述恢复借用对应于从所述服务器读取的数据的量;
确定可用于所述客户端的借用的数量,其中所述可用于所述客户端的借用的数量考虑已分发给所述客户端的恢复借用;
基于所述请求和所述可用于所述客户端的借用的数量来分发借用。
2.根据权利要求1所述的方法,还包括以下中的至少一者:
分发等于所述客户端所请求的恢复借用的数量的恢复借用;
分发大于所述客户端所请求的恢复借用的数量的恢复借用;
分发小于所述客户端所请求的恢复借用的数量的恢复借用;
分发零恢复借用给所述客户端;或
分发负恢复借用给所述客户端。
3.根据权利要求1所述的方法,还包括基于分发给所述客户端的恢复借用的数量来确定客户端高速缓存的大小。
4.根据权利要求1所述的方法,还包括:在所述请求中包括预取标志,其中所述预取标志指示在所述服务器上的数据被所述客户端连续访问。
5.根据权利要求1所述的方法,还包括确定平均消耗1%的CPU的读取的数量。
6.根据权利要求5所述的方法,还包括:基于消耗1%的CPU的读取的数量以及所述CUP的平均空闲百分比来确定平均每个核所允许的读取,以及基于客户端连接的数量来确定每个客户端的最大借用。
7.根据权利要求6所述的方法,还包括:基于应用于所述每个客户端的最大借用的调谐因子来确定计算的每个客户端的借用的数量。
8.根据权利要求7所述的方法,还包括:以等于所请求的借用的数量和所计算的借用的数量中的最小值的数量分发所述恢复借用。
9.根据权利要求7所述的方法,还包括:以等于所请求的借用的数量和所计算的借用的数量中的最大值的数量分发所述恢复借用。
10.根据权利要求1所述的方法,还包括:当处理器的每个核的平均空闲百分比小于预定阈值时,节流所有客户端。
11.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可执行指令,所述计算机可执行指令用于在被执行时实现用于将服务器的资源分配给连接到所述服务器的客户端并从所述服务器恢复数据的方法,所述方法包括:
从客户端接收对恢复借用的请求,其中每个所述恢复借用对应于从所述服务器读取的数据的量;
确定可用于所述客户端的借用的数量,其中所述可用于所述客户端的借用的数量考虑已分发给所述客户端的恢复借用;
基于所述请求和所述可用于所述客户端的借用的数量来分发借用。
12.根据权利要求11所述的非暂时性计算机可读介质,还包括以下中的至少一者:
分发等于所述客户端所请求的恢复借用的数量的恢复借用;
分发大于所述客户端所请求的恢复借用的数量的恢复借用;
分发小于所述客户端所请求的恢复借用的数量的恢复借用;
分发零恢复借用给所述客户端;或
分发负恢复借用给所述客户端。
13.根据权利要求11所述的非暂时性计算机可读介质,还包括基于分发给所述客户端的恢复借用的数量来确定客户端高速缓存的大小。
14.根据权利要求11所述的非暂时性计算机可读介质,还包括:在所述请求中包括预取标志,其中所述预取标志指示在所述服务器上的数据被所述客户端连续访问。
15.根据权利要求11所述的非暂时性计算机可读介质,还包括确定平均消耗1%的CPU的读取的数量。
16.根据权利要求15所述的非暂时性计算机可读介质,还包括:基于消耗1%的CPU的读取的数量以及所述CUP的平均空闲百分比来确定平均每个核所允许的读取,以及基于客户端连接的数量来确定每个客户端的最大借用。
17.根据权利要求16所述的非暂时性计算机可读介质,还包括:基于应用于所述每个客户端的最大借用的调谐因子来确定计算的每个客户端的借用的数量。
18.根据权利要求16所述的非暂时性计算机可读介质,还包括:以等于所请求的借用的数量和所计算的借用的数量中的最小值的数量分发所述恢复借用。
19.根据权利要求16所述的非暂时性计算机可读介质,还包括:以等于所请求的借用的数量和所计算的借用的数量中的最大值的数量分发所述恢复借用。
20.一种用于在客户端从服务器请求恢复借用时执行资源分配的方法,所述方法包括:
确定平均消耗1%的处理器的读取的数量;
通过将所述消耗1%的处理器的读取的数量与每个处理器的每个核的平均空闲百分比相乘来确定每个核所允许的读取的平均数量;
通过将所述每个核所允许的读取的平均数量乘以核的数量再除以客户端连接的数量来确定每个客户端借用的最大数量;
对所述每个客户端借用的最大数量进行调谐来获得计算的每个客户端借用的数量;以及
以等于所请求的恢复借用与所计算的借用的数量之间的最小值的量来许可所述请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/154,518 US10630602B1 (en) | 2018-10-08 | 2018-10-08 | Resource allocation using restore credits |
US16/154,518 | 2018-10-08 | ||
PCT/US2019/043976 WO2020076394A1 (en) | 2018-10-08 | 2019-07-29 | Resource allocation using restore credits |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112805684A true CN112805684A (zh) | 2021-05-14 |
Family
ID=67551451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066453.5A Pending CN112805684A (zh) | 2018-10-08 | 2019-07-29 | 使用恢复借用的资源分配 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10630602B1 (zh) |
CN (1) | CN112805684A (zh) |
DE (1) | DE112019005042T5 (zh) |
GB (1) | GB2591928B (zh) |
WO (1) | WO2020076394A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990447B1 (en) * | 2018-07-12 | 2021-04-27 | Lightbits Labs Ltd. | System and method for controlling a flow of storage access requests |
CN112260955B (zh) * | 2020-09-18 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种混合读写流量控制方法和装置 |
Citations (3)
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 |
WO2005079001A1 (en) * | 2004-02-16 | 2005-08-25 | Christopher Michael Davies | Network architecture |
CN101211289A (zh) * | 2006-12-26 | 2008-07-02 | 国际商业机器公司 | 恢复操作管理系统和方法 |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
AU2002304842A1 (en) | 2001-08-20 | 2003-03-10 | Datacentertechnologies N.V. | File backup system and method |
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 |
US7519725B2 (en) | 2003-05-23 | 2009-04-14 | International Business Machines Corporation | System and method for utilizing informed throttling to guarantee quality of service to I/O streams |
ATE492097T1 (de) * | 2003-10-06 | 2011-01-15 | Ericsson Telefon Ab L M | Koordinierte datenflusssteuerung und datenpufferteilung in umts |
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 |
US7461236B1 (en) * | 2005-03-25 | 2008-12-02 | Tilera Corporation | Transferring data in a parallel processing environment |
DE502005009040D1 (de) | 2005-09-12 | 2010-04-01 | Siemens Ag | Verfahren zur Steuerung eines Zugriffs auf Ressourcen eines Datenverarbeitungssystems und Steuerungsprogramm |
US7698478B2 (en) * | 2006-09-19 | 2010-04-13 | Apple Inc. | Managed credit update |
US7872975B2 (en) | 2007-03-26 | 2011-01-18 | Microsoft Corporation | File server pipelining with denial of service mitigation |
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 |
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 |
JP2016521936A (ja) | 2013-06-29 | 2016-07-25 | インテル コーポレイション | クレジットに基づく調停のためのサービスレート再分配 |
US20160005007A1 (en) | 2014-07-04 | 2016-01-07 | Flashback Survey, Inc. | Methods and systems for using scanable codes to obtain maintenance and reminder services |
US10419621B2 (en) | 2014-11-14 | 2019-09-17 | Tracfone Wireless, Inc. | Methods, systems and applications for managing wireless services on a wireless device |
CN111050007A (zh) | 2015-05-11 | 2020-04-21 | 华为技术有限公司 | 一种策略和计费执行功能装置、在线计费装置及在线计费方法 |
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 |
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 |
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 |
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,518 patent/US10630602B1/en active Active
-
2019
- 2019-07-29 DE DE112019005042.7T patent/DE112019005042T5/de active Pending
- 2019-07-29 CN CN201980066453.5A patent/CN112805684A/zh active Pending
- 2019-07-29 GB GB2104643.8A patent/GB2591928B/en active Active
- 2019-07-29 WO PCT/US2019/043976 patent/WO2020076394A1/en active Application Filing
-
2020
- 2020-03-31 US US16/836,350 patent/US11005776B2/en active Active
Patent Citations (3)
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 |
WO2005079001A1 (en) * | 2004-02-16 | 2005-08-25 | Christopher Michael Davies | Network architecture |
CN101211289A (zh) * | 2006-12-26 | 2008-07-02 | 国际商业机器公司 | 恢复操作管理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200112520A1 (en) | 2020-04-09 |
GB202104643D0 (en) | 2021-05-12 |
US11005776B2 (en) | 2021-05-11 |
GB2591928B (en) | 2023-05-17 |
WO2020076394A1 (en) | 2020-04-16 |
US20200228461A1 (en) | 2020-07-16 |
DE112019005042T5 (de) | 2021-09-16 |
GB2591928A (en) | 2021-08-11 |
US10630602B1 (en) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593152B1 (en) | Application hosting in a distributed application execution system | |
US9600337B2 (en) | Congestion avoidance in network storage device using dynamic weights | |
Chowdhury et al. | Leveraging endpoint flexibility in data-intensive clusters | |
KR101957006B1 (ko) | 네트워크 액세스가능 블록 저장을 위한 조정된 승인 제어 | |
KR101885688B1 (ko) | 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할 | |
US11936568B2 (en) | Stream allocation using stream credits | |
US9772958B2 (en) | Methods and apparatus to control generation of memory access requests | |
US11765099B2 (en) | Resource allocation using distributed segment processing credits | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
Bok et al. | An efficient MapReduce scheduling scheme for processing large multimedia data | |
US20140351550A1 (en) | Memory management apparatus and method for threads of data distribution service middleware | |
CN106164888A (zh) | 用于最小化工作负荷空闲时间和工作负荷间干扰的网络和存储i/o请求的排序方案 | |
CN112805684A (zh) | 使用恢复借用的资源分配 | |
CN110178119B (zh) | 处理业务请求的方法、装置与存储系统 | |
CN108228323B (zh) | 基于数据本地性的Hadoop任务调度方法及装置 | |
KR101661475B1 (ko) | 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 | |
Chen et al. | A real-time scheduling strategy based on processing framework of Hadoop | |
CN106033434A (zh) | 基于数据规模和流行程度的虚拟资产数据副本处理方法 | |
US10135750B1 (en) | Satisfaction-ratio based server congestion control mechanism | |
US11048554B1 (en) | Correlated volume placement in a distributed block storage service | |
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 | |
CN118502938A (zh) | 资源分配方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |