Stream allocation using stream credits
AssigneeEMC IP Holding Company LLC
InventorKeyur B. Desai
Life of this patent
Estimating the term…
Abstract
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.
Claims20
A method for allocating resources of a cluster of servers, the method comprising:
- predetermining a maximum stream credits associated with each client 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, 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 a number of streams available from the servers;
- assuming that the request for stream credits is granted;
- and
- determining whether at least one other client could request and use their maximum stream credits;
- wherein the allocation state is safe when the at least one other client can request and use their maximum stream credits and wherein the allocation state is unsafe when the at least one other client cannot request and use their maximum stream credits;
- and
- issuing the stream credits to the client in response to the request for stream credits based on the allocation state.
A method for allocating resources of a cluster of servers, the method comprising:
- predetermining a maximum credits associated with each client of the cluster of servers;
- receiving a request for credits from a client at the cluster, wherein the credits are for using resources provided by the cluster of servers;
- determining, by the cluster, an allocation state of the cluster in response to the request for credits from the client, wherein determining the allocation state includes:
- determining resources available from the servers;
- assuming that the request for credits is granted;
- and
- determining whether at least one other client could request and use their maximum credits;
- wherein the allocation state is safe when the at least one other client can request and use their maximum credits and wherein the allocation state is unsafe when the at least one other client cannot request and use their maximum credits;
- and
- issuing the credits to the client in response to the request for credits based on the allocation state.
A non-transitory computer readable medium including instructions for implementing a method for allocating resources of a cluster of servers when performing a data protection operation, the method comprising:
- predetermining a maximum credits associated with each client of the cluster of servers;
- receiving a request for credits from a client at the cluster, wherein the credits are for using resources provided by the cluster of servers;
- determining, by the cluster, an allocation state of the cluster in response to the request for credits from the client, wherein determining the allocation state includes:
- determining resources available from the servers;
- assuming that the request for credits is granted;
- and
- determining whether at least one other client could request and use their maximum credits;
- wherein the allocation state is safe when the at least one other client can request and use their maximum credits and wherein the allocation state is unsafe when the at least one other client cannot request and use their maximum credits;
- and
- issuing the credits to the client in response to the request for credits based on the allocation state.
Dependencies are inferred from the claim text.