Adaptive endpoint selection
First Claim
1. A method for selecting, for a client device, a service endpoint from a plurality of service endpoints in a distributed system of a service provider, the method comprising:
- storing processing data for each of the plurality of service endpoints,for at least a first service request from the client device, where a current history length is less than or equal to a threshold length, applying uniform random selection to select a first one of the plurality of service endpoints;
for at least a second service request from the client device, where the current history length for all of the plurality of service endpoints exceeds the threshold length;
calculating for each of the plurality of service endpoints and using the processing data;
a success rate based on a number of successfully processed requests from a plurality of received requests, wherein the success rate indicates a rate of success for the plurality of received requests;
an average latency based on latency associated with each of the successfully processed requests;
a latency score based on a minimum average latency and the average latency, wherein the minimum average latency is selected from the average latency for each of the plurality of service endpoints;
a raw score based on the latency score and the success rate; and
a selection weight based on the raw score and a balancing parameter, wherein the balancing parameter determines an extent to which the selection weight deviates, based on the processing data, from uniform weights across the plurality of service endpoints; and
selecting a second one of the plurality of service endpoints based on the selection weight; and
directing the first and second service requests to the first and second selected service endpoints respectively.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for selecting a service endpoint from a plurality of service endpoints in a distributed system of a service provider may include storing processing data for each of the plurality of endpoints. A success rate may be calculated for each of the plurality of service endpoints and based on a number of processed requests from a plurality of received requests. An average latency may be calculated based on latency associated with each of the processed requests. A latency score may be calculated based on a minimum average latency and the average latency. A raw score may be calculated based on the latency score and the success rate. A selection weight may be calculated based on the raw score and a balancing parameter. One of the plurality of endpoints may be selected based on the selection weight.
51 Citations
20 Claims
-
1. A method for selecting, for a client device, a service endpoint from a plurality of service endpoints in a distributed system of a service provider, the method comprising:
-
storing processing data for each of the plurality of service endpoints, for at least a first service request from the client device, where a current history length is less than or equal to a threshold length, applying uniform random selection to select a first one of the plurality of service endpoints; for at least a second service request from the client device, where the current history length for all of the plurality of service endpoints exceeds the threshold length; calculating for each of the plurality of service endpoints and using the processing data; a success rate based on a number of successfully processed requests from a plurality of received requests, wherein the success rate indicates a rate of success for the plurality of received requests; an average latency based on latency associated with each of the successfully processed requests; a latency score based on a minimum average latency and the average latency, wherein the minimum average latency is selected from the average latency for each of the plurality of service endpoints; a raw score based on the latency score and the success rate; and a selection weight based on the raw score and a balancing parameter, wherein the balancing parameter determines an extent to which the selection weight deviates, based on the processing data, from uniform weights across the plurality of service endpoints; and selecting a second one of the plurality of service endpoints based on the selection weight; and directing the first and second service requests to the first and second selected service endpoints respectively. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage medium having instructions thereon for executing a method for selecting a service endpoint from a plurality of service endpoints in a distributed system of a compute service provider, the method comprising:
using an endpoint selection service of the compute service provider; in a first case with an endpoint historic data length parameter of a given endpoint greater than a counter of a current historic length of the given endpoint, applying uniform random endpoint selection to select a first service endpoint; and in a second case with the endpoint historic data length parameter of the given endpoint less than the counter of the current historic length of the given endpoint; storing processing data for each of the plurality of service endpoints, wherein the processing data for each service endpoint indicates a success rate and an average latency associated with successfully processed requests from a plurality of received requests, wherein the success rate indicates a rate of success for the plurality of received requests; in response to receiving a service request, calculating a selection weight for each of the plurality of service endpoints, the selection weight based on the success rate, the average latency and a balancing parameter, the balancing parameter indicating an extent to which the selection weight deviates, based on the processing data, from uniform weights across the plurality of service endpoints; and selecting a second one of the plurality of service endpoints to receive the service request based on the calculated selection weight for each of the plurality of service endpoints. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
17. A system for selecting a service endpoint from a plurality of service endpoints in a distributed system of a compute service provider, the system comprising:
-
a plurality of host server computers coupled together through a network to form the service provider, at least a portion of the host server computers for executing a plurality of virtual machine instances associated with a customer account; the plurality of service endpoints operable to execute at least one of a plurality of service requests associated with a service of the service provider, the service requests originating from at least one of the host server computers; and an endpoint selection service communicatively coupled to the plurality of service endpoints, the endpoint selection service operable to; store processing data for each of the plurality of service endpoints, wherein the processing data for each service endpoint indicates success rate and average latency associated with successfully processing at least a portion of the plurality of received service requests, wherein the success rate indicates a rate of success for the plurality of received service requests and the average latency is an average of a latency at the each service endpoint for processing each successfully processed request, the latency extending from receipt of the corresponding request from a client device to communicating a reply to the client device indicating that the corresponding request was successfully processed; acquire a balancing parameter for each of the plurality of service endpoints; in response to receiving at least one of the service requests, calculate a selection weight for each of the plurality of service endpoints, the selection weight based on the success rate, the average latency and the balancing parameter, wherein the balancing parameter indicates an extent to which the selection weight deviates, based on the processing data, from uniform weights across the plurality of service endpoints, and thereby determines an impact of the success rate on the selection weight; and select one of the plurality of service endpoints to receive the at least one of the service requests according to; a uniform random selection in a case where a historic data length parameter is greater than a counter of a current historic length; and a weighted distribution based on the calculated selection weight for each of the plurality of service endpoints, in another case where the historic data length parameter is less than the counter of the current historic length. - View Dependent Claims (18, 19, 20)
-
Specification