TEMPORAL AFFINITY-BASED ROUTING OF WORKLOADS
First Claim
1. A method for distributing requests, the method comprising:
- a coordinator (a) developing advice as to whether affinity-based routing would benefit a service at a node in a cluster and (b) posting this advice to one or more subscribers;
determining whether a potential gain in performance in the cluster can be achieved by using affinity-based routing in the cluster; and
in response to determining that a potential gain in performance in the cluster can be achieved by using affinity-based routing in the cluster, recommending, in the advice, distribution of requests to nodes in the cluster by preserving client-to-node affinity for all repeated requests from the same client;
in a series of states, observing whether the potential gain has been achieved for each service and node of the cluster by collating performance characteristics of the cluster;
while there is no deviation in performance in the cluster, continuing to prescribe affinity-based routing in the cluster; and
in response to measuring a potential loss in performance data for any intervals subsequent to a first time interval, removing the advice to use affinity for a particular service and a particular node.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for routing client requests among a group of nodes offering a service are described. A coordinator determines that performance could be improved by using affinity-based routing. In one embodiment, the coordinator calculates a Time-to-Live (TTL) metric whereby clients benefit by returning to the same cache and posts this hint to subscribers. Client'"'"'s start preserving locality data in an affinity context, such that later requests for a connection can be routed to the location last visited. The coordinator measures the system over subsequent intervals. If the gradient of the goodness (viz service quality and capacity) is stable or improving, then the coordinator continues to advise subscribers to use the affinity-based technique. Alternatively, if the gradient of the goodness is deteriorating, then the coordinator posts advice to the subscribers to stop using the affinity-based technique for any instance during the next intervals.
84 Citations
23 Claims
-
1. A method for distributing requests, the method comprising:
-
a coordinator (a) developing advice as to whether affinity-based routing would benefit a service at a node in a cluster and (b) posting this advice to one or more subscribers; determining whether a potential gain in performance in the cluster can be achieved by using affinity-based routing in the cluster; and in response to determining that a potential gain in performance in the cluster can be achieved by using affinity-based routing in the cluster, recommending, in the advice, distribution of requests to nodes in the cluster by preserving client-to-node affinity for all repeated requests from the same client; in a series of states, observing whether the potential gain has been achieved for each service and node of the cluster by collating performance characteristics of the cluster; while there is no deviation in performance in the cluster, continuing to prescribe affinity-based routing in the cluster; and in response to measuring a potential loss in performance data for any intervals subsequent to a first time interval, removing the advice to use affinity for a particular service and a particular node. - View Dependent Claims (2, 3)
-
-
4. A method comprising:
-
determining a “
time-to-live”
whereby returning requests to check out a connection are routed to the same instance if returning within a specified time-to-live period;wherein determining the “
time-to-live”
comprises calculating a metric based on a time that warm data that are session specific reside in a cache before aging;wherein the “
time-to-live”
includes an estimate of an improved cache age by virtue of enabling affinity;wherein, as a global cache hit ratio improves, the “
time-to-live”
also improves.
-
-
5. A method comprising:
-
obtaining a measurement of a characteristic of a system; determining whether the measurement satisfies specified criteria; and in response to determining that the measurement does not satisfy the specified criteria, distributing requests from one or more clients among two or more of the system'"'"'s nodes based on an affinity-based technique; wherein distributing requests based on the affinity-based technique comprises sending all requests that come from each client to a particular node of the two or more nodes for as long as an affinity relationship exists between the particular client and the particular node, a particular instance, and a particular service; and
wherein the characteristic is an average time taken by nodes in the system to receive replicas of data blocks that were requested from other nodes in the system. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
preserving a state that a client is using relative to a first request; carrying the state with the client in a context area; using the state to maintain an affinity relationship between the client and a particular node to which the first request was routed; and based on the affinity relationship, routing a second request to the particular node if an affinity recommendation indicates that affinity-based routing should be used. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method for distributing requests, the method comprising:
-
during a first time interval, distributing, based on a load-balancing technique, requests from one or more clients among two or more nodes in a system; during the first time interval, obtaining a measurement of a characteristic of the system; determining whether the measurement satisfies specified criteria; and if the measurement does not satisfy the specified criteria, then, during a second time interval that is subsequent to the first time interval, distributing requests from at least one of the one or more clients among the two or more nodes based on an affinity-based technique; wherein distributing requests based on the affinity-based technique comprises sending all requests that come from a particular client to a particular node of the two or more nodes for as long as an affinity relationship exists between the particular client and the particular node. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification