Distributed demand-based storage quality of service management using resource pooling
First Claim
1. A method for providing quality of service (QoS) for clients running on host computers to access a common resource, the method comprising:
- computing a current capacity for the common resource based on a global average latency for accessing the common resource by the clients;
computing dynamic reservation values for the clients running on the host computers by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource; and
allocating the computed current capacity among the clients running on the host computers using the dynamic reservation values for the clients,wherein the distributing of the global reservation value for the common resource among the clients includes distributing the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for providing quality of service (QoS) for clients running on host computers to access a common resource uses a resource pool module and a local scheduler in at least one of the host computers. The resource pool module operates to compute an entitlement of each client for the common resource based on a current capacity for the common resource and demands of the clients for the common resource. In addition, the resource pool module operates to assign a portion of the computed current capacity for the common resource to a particular host computer using the computed entitlement of each client running on the particular host computer. The local scheduler operates to allocate the portion of the computed current capacity among the clients running on the particular host computer.
17 Citations
18 Claims
-
1. A method for providing quality of service (QoS) for clients running on host computers to access a common resource, the method comprising:
-
computing a current capacity for the common resource based on a global average latency for accessing the common resource by the clients; computing dynamic reservation values for the clients running on the host computers by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource; and allocating the computed current capacity among the clients running on the host computers using the dynamic reservation values for the clients, wherein the distributing of the global reservation value for the common resource among the clients includes distributing the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
at least one processor; a plurality of clients operably connected to the at least one processor; a resource interface with a host queue to store requests from the clients to access a common resource; a resource pool module operably connected to the at least one processor, the resource pool module comprising; a first component configured to compute a current capacity for the common resource based on a global average latency for accessing the common resource by the clients; and a second component configured to compute dynamic reservation values for the clients by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource, wherein the second component is further configured to distribute the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process; and a scheduler operably connected to the resource pool module, the scheduler being configured to allocate the computed current capacity among the clients using the dynamic reservation values for the clients. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium containing program instructions for providing quality of service to clients in host computers to access a common resource, wherein execution of the program instructions by one or more processors of the host computers the one or more processors causes the one or more processors to perform steps comprising:
-
computing a current capacity for the common resource based on a global average latency for accessing the common resource by the clients; computing dynamic reservation values for the clients running on the host computers by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource; and allocating the computed current capacity among the clients running on the host computers using the dynamic reservation values for the clients, wherein the distributing of the global reservation value for the common resource among the clients includes distributing the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification