Method for Distributed Hierarchical Admission Control across a Cluster
First Claim
1. A network cluster comprising a plurality of cluster members, wherein each member of the cluster comprises:
- a first database containing a hierarchical tree structure for tracking a current rate consumption of that cluster member; and
a first set of computer-executable instructions for controlling the admission of client requests sent to that cluster member.
1 Assignment
0 Petitions
Accused Products
Abstract
A network cluster is provided herein having a plurality of cluster members. In order to control the admission of client requests sent to the cluster, one member of the cluster is elected “reservation coordinator.” The reservation coordinator runs a reservation algorithm for controlling the distribution of rate capacity across members of the cluster. For example, each member of the cluster may reserve some amount of rate from the coordinator to allow for passing of client requests. To ensure that each member is provided with the appropriate rate capacity, each member of the cluster runs an estimation algorithm to determine whether or not additional rate capacity should be reserved from the reservation coordinator, or released back into the cluster for redistribution. The estimation algorithm is run in real-time and allows the admission control algorithm to adapt to changes in rate distribution.
35 Citations
20 Claims
-
1. A network cluster comprising a plurality of cluster members, wherein each member of the cluster comprises:
-
a first database containing a hierarchical tree structure for tracking a current rate consumption of that cluster member; and a first set of computer-executable instructions for controlling the admission of client requests sent to that cluster member. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for controlling the admission of client requests sent to a cluster having a plurality of cluster members, the method comprising:
-
receiving a client request for a service or operation provided by one of the cluster members, the client request having a weight assigned thereto; accessing a tree structure stored within the one cluster member, the tree structure comprising a plurality of levels, a plurality of nodes, and at least one branch, wherein a single one of the nodes is a root node occupying a highest level of the tree structure, wherein a given branch connects a parent node in a given level to a child node in a level directly below the given level, and wherein each node of the tree structure comprises a bucket configured for accepting tokens up to a maximum rate limit, which is specified for that bucket as a maximum number of tokens added per time period; traversing the tree structure to get a chain of buckets descending from the root node to a child node corresponding to the requested service or operation; and admitting the client request, if a number of tokens equal to the weight of the client request can be added to each bucket within the chain of buckets without exceeding the maximum rate limit specified for any bucket in the chain. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for releasing rate capacity from one member of a cluster comprising a plurality of cluster members, the method comprising:
-
receiving one or more client requests, each having a weight assigned thereto, over the course of a current time period; calculating an average rate for the current time period by summing the weights of the client requests received during the current time period and dividing the sum by the current time period; determining a current rate consumption trend by comparing the average rate calculated for the current time period to an average rate calculated for a previous time period; and releasing rate capacity from one member of the cluster based on the current rate consumption trend and a current reservation amount allocated to that cluster member. - View Dependent Claims (17, 18, 19, 20)
-
Specification