Stream allocation using stream credits

US11201828B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11201828-B2
Application numberUS-201816154475-A
CountryUS
Kind codeB2
Filing dateOct 8, 2018
Priority dateOct 8, 2018
Publication dateDec 14, 2021
Grant dateDec 14, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems and methods for allocating resources are disclosed. Resources such as streams are allocated using a stream credit system. Credits are issued to the clients in a manner that ensure the system is operating in a safe allocation state. The credits can be used not only to allocate resources but also to throttle clients where necessary. Credits can be granted fully, partially, and in a number greater than a request. Zero or negative credits can also be issued to throttle clients.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for allocating resources of a cluster of servers to clients when performing a data protection operation, the method comprising: streaming one or more streams with respect to the clients using the resources of the cluster, wherein each of the one or more streams consumes some of the resources of the cluster of servers; receiving a request for stream credits from a client at the cluster, wherein the stream credits are for using streams provided by the cluster of servers; determining a current allocation matrix that identifies streams currently allocated to each of the clients, wherein the current allocation matrix is based on a total number of streams available from the cluster and streams currently allocated to the clients; determining a current demand matrix that specifies a maximum number of streams that can be requested by each of the clients at a point in time; determining a current need matrix based on the current demand matrix and the current allocation matrix, wherein the current need matrix identifies a number of stream credits that each of the clients can request to acquire their maximum number of stream credits; determining, by the cluster, an allocation state of the cluster in response to the request for stream credits from the client, wherein determining the allocation state includes determining the number of streams available from the servers, assuming that the request for stream credits is granted, and determining whether the client and each of the other clients could request and use their maximum stream credits in succession based on the current allocation matrix, the current demand matrix, the current need matrix and the request for stream credits from the client, wherein the allocation state is safe when each of the clients including the requesting client could request and use their maximum stream credits, and wherein the allocation state is unsafe when the resources associated with the maximum stream credits of each of the clients cannot be allocated and used; and issuing the stream credits in response to the request for stream credits based on the allocation state. 2. The method of claim 1 , further comprising defining a maximum number of streams for allocation for each of the servers in the cluster. 3. The method of claim 2 , wherein the maximum number of streams for allocation is related to processing abilities of the servers. 4. The method of claim 1 , wherein each of the clients can request stream credits from any of the servers. 5. The method of claim 1 , wherein issuing credits based on the allocation state includes at least one of: issuing stream credits in an amount equal to the request when the allocation state is safe; and when the allocation state is unsafe, issuing stream credits in an amount greater than the request; issuing stream credits in an amount greater than zero and less than the request; issuing zero stream credits; or issuing negative stream credits. 6. The method of claim 1 , further comprising throttling the client when the allocation state is not safe until the allocation state is safe. 7. A non-transitory computer readable medium including instructions for implementing a method for allocating resources of a cluster of servers to clients when performing a data protection operation, the method comprising: streaming one or more streams with respect to the clients using the resources of the cluster, wherein each of the one or more streams consumes some of the resources of the cluster of servers; receiving a request for stream credits from a client at the cluster, wherein the stream credits are for using streams provided by the cluster of servers; determining a current allocation matrix that identifies streams currently allocated to each of the clients, wherein the current allocation matrix is based on a total number of streams available from the cluster and streams currently allocated to the clients; determining a current demand matrix that specifies a maximum number of streams that can be requested by each of the clients at a point in time; determining a current need matrix based on the current demand matrix and the current allocation matrix, wherein the current need matrix identifies a number of stream credits that each of the clients can request to acquire their maximum number of stream credits; determining, by the cluster, an allocation state of the cluster in response to the request for stream credits from the client, wherein determining the allocation state includes determining the number of streams available from the servers, assuming that the request for stream credits is granted, and determining whether the client and each of the other clients could request and use their maximum stream credits in succession based on the current allocation matrix, the current demand matrix, the current need matrix and the request for stream credits from the client, wherein the allocation state is safe when each of the clients including the requesting client could request and use their maximum stream credits, and wherein the allocation state is unsafe when the resources associated with the maximum stream credits of each of the clients cannot be allocated and used; and issuing the stream credits in response to the request for stream credits based on the allocation state. 8. The non-transitory computer readable medium of claim 7 , further comprising defining a maximum number of streams for allocation for each of the servers in the cluster. 9. The non-transitory computer readable medium of claim 8 , wherein the maximum number of streams for allocation is related to processing abilities of the servers. 10. The non-transitory computer readable medium of claim 7 , wherein each of the clients can request stream credits from any of the servers. 11. The non-transitory computer readable medium of claim 7 , wherein issuing credits based on the allocation state includes at least one of: issuing stream credits in an amount equal to the request when the allocation state is safe; and when the allocation state is unsafe, issuing stream credits in an amount greater than the request; issuing stream credits in an amount greater than zero and less than the request; issuing zero stream credits; or issuing negative stream credits. 12. The non-transitory computer readable medium of claim 11 , further comprising throttling the client when the allocation state is not safe until the allocation state is safe.

Assignees

Inventors

Classifications

  • for unicast · CPC title

  • G06F9/5027Primary

    the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title

  • G06F3/0617Primary

    in relation to availability · CPC title

  • Resource capping · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11201828B2 cover?
Systems and methods for allocating resources are disclosed. Resources such as streams are allocated using a stream credit system. Credits are issued to the clients in a manner that ensure the system is operating in a safe allocation state. The credits can be used not only to allocate resources but also to throttle clients where necessary. Credits can be granted fully, partially, and in a number…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/5027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 14 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).