Method and apparatus for a minimalist approach to implementing server selection
First Claim
1. A system for optimizing server selection for clients from among a plurality of servers in a packet communication network, the system comprising:
- a plurality of servers for alternatively responding to client requests;
a central server that maintains server selection weights, and, based on the weights, provides in response to a client request a candidate server list of at least two candidate servers to a network node, other than the central server, adapted to interrogate individual servers represented in the candidate server list, the central server receiving feedback from the interrogated individual servers indicating service by the individual servers in response to client requests and modifying the server selection weights based on the feedback, the central server adds to the candidate server list an extra candidate server;
wherein the extra candidate server is randomly selected; and
wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights.
1 Assignment
0 Petitions
Accused Products
Abstract
Server selection is optimized using randomness, feedback, and fanout. A central server maintains a vector of server selection probabilities and provides a subset of candidate servers from the vector for the client in response to receiving from a client a request for a server address to provide substantive service. An interrogating node (i.e., the client or DNS proxy) probes the candidate servers and selects a best server based on at least one criterion. The client accesses the selected server for the substantive data, and the selected server updates a counter used to keep track of the number of times the server is selected. The servers feedback the number of times selected to the central server, which, in turn, updates weightings in the vector of server selection probabilities.
130 Citations
71 Claims
-
1. A system for optimizing server selection for clients from among a plurality of servers in a packet communication network, the system comprising:
-
a plurality of servers for alternatively responding to client requests; a central server that maintains server selection weights, and, based on the weights, provides in response to a client request a candidate server list of at least two candidate servers to a network node, other than the central server, adapted to interrogate individual servers represented in the candidate server list, the central server receiving feedback from the interrogated individual servers indicating service by the individual servers in response to client requests and modifying the server selection weights based on the feedback, the central server adds to the candidate server list an extra candidate server; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for optimizing server selection for clients from among a plurality of servers in a packet communication network, the method comprising:
-
providing in response to a client request for a server address a candidate server list by a central server to a network node, other than the central server, adapted to interrogate individual servers represented in the candidate server list, the candidate server list including at least two server addresses selected based on weights corresponding to the candidate servers; selecting a preferred server from candidate server list; feeding back service metrics to the central server from the interrogated individual servers corresponding to service provided by the respective servers; updating the weights based on the service metric; adding to the candidate server list an extra candidate server; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. By a central server in a packet communication network, a method for providing a client with a list of possible optimal servers from among a plurality of servers also on the network, comprising:
-
maintaining weights corresponding to a plurality of servers; in response to receiving a client request from a client, selecting a candidate server list of at least two candidate servers from among the servers represented by the weights; providing the candidate server list to a network node, other than a network node selecting the candidate server list, adapted to interrogate individual servers represented in the candidate server list; receiving feedback from the interrogated individual servers related to service by the servers for maintaining the weights; and adding to the candidate server list an extra candidate server; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43)
-
-
44. A computer program product comprising:
-
a non-transitory computer readable medium for storing data; and a set of computer program instructions embodied on the computer readable medium, including instructions to; maintain weights related to service provided by servers; in response to receiving a request from a client, select a candidate server list of at least two candidate servers from among the servers represented by the weights based on the weights; provide the candidate server selection list to a network node, other than a network node executing the instructions to select the candidate server list, adapted to interrogate individual servers represented in the candidate server list; receive feedback from the interrogated individual servers to maintain the weights; and add to the candidate server list an extra candidate server; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (45, 46, 47, 48, 49, 50)
-
-
51. An apparatus for providing a client with a list of possible optimal servers from among a plurality of servers also on the network, the apparatus comprising:
-
means for maintaining weights based on service by servers; means for receiving a request from a client; means for selecting a candidate server selection list of at least two candidate servers based on the weights from among the servers represented by the weights; and means for providing the candidate server selection list to a network node other than a network node including the means for selecting the candidate server selection list, adapted to interrogate individual servers represented in the candidate server list; means for receiving feedback from the interrogated individual servers; and means for adding to the candidate server list an extra candidate server; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (52, 53, 54, 55)
-
-
56. An apparatus for providing a client with a list of possible optimal servers from among a plurality of servers also on the network, the apparatus comprising:
-
one or more processors coupled to memory storing weights related to service provided by a plurality of servers, said one or more processors executing a computer program to; maintain the weights; receive a request from a client; in response to the request, select a candidate server list of at least two candidate servers from among the servers represented by the weights; add to the candidate server list an extra candidate server; an interface coupled to the one or more processors and the network (i) to provide the candidate server list to a network node, other than a network node with the computer program to select a candidate server list, adapted to interrogate individual servers represented in the candidate server list and (ii) to receive feedback from the interrogated individual servers; wherein the extra candidate server is randomly selected; and wherein a number of servers in the candidate server list, including the candidate servers and the extra, randomly selected, candidate server, is a fixed percentage or a fixed number beyond the number of servers selected based on the weights. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
Specification