Load balancing for replicated services
First Claim
1. A method of balancing requests for a replicated service among a plurality of servers, wherein the requests are received at a central server, the method comprising:
- selecting a policy, said policy comprising one or more factors for selecting a preferred server to receive a request for the replicated service, wherein said one or more factors includes a first factor;
operating a first status module to determine a status of said first factor for a first server;
operating a second status module to determine a status of said first factor for a second server;
receiving said first server status at the central server;
receiving said second server status at the central server;
examining said first server status and said second server status to select a preferred server;
storing an identifier of said preferred server on the central server; and
directing a request for the replicated service received at the central server to said preferred server, wherein said directed request is received after said storing.
2 Assignments
0 Petitions
Accused Products
Abstract
A method is provided for load balancing requests for a replicated service or application among a plurality of servers operating instances of the replicated service or application. A policy is selected for choosing a preferred server from the plurality of servers according to one or more specified status or operational characteristics of the servers, such as the least-loaded or closest server. The policy is encapsulated within multiple levels of objects or modules that are distributed among the servers offering the replicated service and a central server that receives requests for the service. Status objects gather or retrieve information concerning the specified status or operational characteristic(s) of each of the plurality of servers. An individual server monitor object operates for each instance of the replicated service to invoke one or more status objects and receive the necessary information. A central replicated monitor object receives the information from each individual server monitor object. The information from the servers is analyzed to select the server having the optimal status or operational characteristic(s). An update object updates the central server, such as a domain name server, to indicate the preferred server. Requests for the replicated service are then directed to the preferred server until a different preferred server is identified.
-
Citations
30 Claims
-
1. A method of balancing requests for a replicated service among a plurality of servers, wherein the requests are received at a central server, the method comprising:
-
selecting a policy, said policy comprising one or more factors for selecting a preferred server to receive a request for the replicated service, wherein said one or more factors includes a first factor;
operating a first status module to determine a status of said first factor for a first server;
operating a second status module to determine a status of said first factor for a second server;
receiving said first server status at the central server;
receiving said second server status at the central server;
examining said first server status and said second server status to select a preferred server;
storing an identifier of said preferred server on the central server; and
directing a request for the replicated service received at the central server to said preferred server, wherein said directed request is received after said storing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
operating a third status module to determine a first status of said second factor for said first server;
wherein said server monitor module also receives said first status of said second factor.
-
-
4. The method of claim 2, wherein said server monitor module executes on said first server.
-
5. The method of claim 2, wherein said server monitor module executes on the central server.
-
6. The method of claim 1, further comprising maintaining a central monitor module for retrieving said first server status and said second server status.
-
7. The method of claim 6, wherein said central monitor module executes on the central server.
-
8. The method of claim 1, wherein said operating a first status module comprises invoking a first status module residing on the first server.
-
9. The method of claim 1, wherein said operating a first status module comprises pinging a first server by the central server and operating a second status module comprises pinging a second server by the central server.
-
10. The method of claim 1, further comprising:
selecting a local policy for a subset of the plurality of servers, said local policy specifying a second factor for selecting a server to receive a request for the replicated service.
-
11. The method of claim 1, wherein for each of said plurality of servers, a status of each of said one or more factors is determined by a separate status module.
-
12. The method of claim 1, wherein said operating a first status module comprises issuing a Connect command to a first server by the central server and operating a second status module comprises issuing a Connect command to a second server by the central server.
-
13. A method of load balancing requests for a replicated service received at a central server among a set of servers, comprising:
-
selecting a policy for directing a request for the replicated service to a preferred server, wherein said policy specifies a server factor for selecting said preferred server from the set of servers;
executing a first status object on the central server to determine a first status of said server factor for a first server in the set of servers;
executing a first server monitor object on the central server to receive said first status;
executing a central monitor object on the central server to receive multiple statuses of said server factor for multiple servers in the set of servers, including said first status;
examining said multiple statuses to select a preferred server; and
updating the central server to identify said preferred server. - View Dependent Claims (14, 15, 16, 17, 18)
configuring an intermediate central monitor object on an intermediate server to collect one or more statuses of said server factor for one or more members of said first subset; and
receiving said one or more statuses at the central server from said intermediate central monitor object.
-
-
15. The method of claim 14, further comprising selecting a local policy for balancing requests for the replicated service among the members of the first subset according to a local server factor.
-
16. The method of claim 15, wherein said local server policy is different from said policy.
-
17. The method of claim 13, wherein said central server comprises a domain name server, further comprising updating a lookup table associated with the domain name server to associate said preferred server with the replicated service.
-
18. The method of claim 17, wherein said lookup table comprises a zone file and said updating comprises storing a network address of said preferred server to facilitate directing a future request for the replicated service from the central server to said preferred server.
-
19. An apparatus for balancing requests for a replicated service among multiple servers, wherein the requests are received at a central server, comprising:
-
a first server configured to operate a first instance of the replicated service;
a second server configured to operate a second instance of the replicated service;
a first status module on the central server-configured to determine a first status of said first server;
a second status module on the central server-configured to determine a second status of said second server;
a first server monitor module on the central server configured to invoke said first status module and receive said first status;
a second server monitor module on the central server configured to invoke said second status module and receive said second status;
a central monitor module configured to receive said first status and said second status;
a preferred server identifier configured to identify a preferred server for receiving a future request for the replicated service; and
an update module configured to update said preferred server identifier to indicate one of said first server and said second server to receive a request for the replicated service. - View Dependent Claims (20, 21, 22, 23)
one or more servers; and
an intermediate central monitor module configured to receive a status of one of said one or more servers and communicate said status to said central monitor module.
-
-
23. The apparatus of claim 19, wherein said first status module is a Connect command issued by the central server to said first server.
-
24. An apparatus for load balancing requests for a replicated service received at a central server, comprising:
-
a first status determination means for determining a first status of a first server offering the replicated service;
a second status determination means for determining a second status of a second server offering the replicated service;
a first server monitor means for invoking said first status determination means;
central monitor means for receiving said first status and said second status;
server selection means for selecting a preferred server from one of said first server and said second server; and
updating means for storing an identifier of said preferred server on the central server;
wherein one or more requests for the replicated service received after said updating are directed to said preferred server. - View Dependent Claims (25)
-
-
26. A method of load balancing requests for a replicated service received at a central server among a set of servers, comprising:
-
selecting a policy for directing a request for the replicated service to a preferred server, wherein said policy specifies a server factor for selecting said preferred server from the set of servers;
configuring a first status object on a first server in the set of servers to determine a first status of said server factor for said first server;
configuring a first server monitor object on said first server to receive said first status;
configuring a central monitor object on the central server to receive multiple statuses of said server factor for multiple servers in the set of servers, including said first status;
examining said multiple statuses to select a preferred server;
updating the central server to identify said preferred server; and
directing a request for the replicated service received at the central server to said preferred server, wherein said directed request is received after said updating. - View Dependent Claims (27, 28, 29)
invoking said first status object;
storing said first status with said first server monitor object; and
receiving said first status at the central server, by said central monitor object, from said first server monitor object.
-
-
28. The method of claim 26, wherein the set of servers includes a first subset, the method further comprising:
-
configuring an intermediate central monitor object on an intermediate server within the first subset to collect one or more statuses of said server factor for one or more members of the subset; and
receiving said one or more statuses at the central server from said intermediate central monitor object.
-
-
29. The method of claim 28, further comprising selecting a local policy for balancing requests for the replicated service among the members of the subset according to a local server factor, wherein said local server factor is different from said server factor.
-
30. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for balancing requests for a replicated service among a plurality of servers, wherein the requests are received at a central server, the method comprising:
-
selecting a policy, said policy specifying a server-selection factor for selecting a preferred server to receive a request for the replicated service;
invoking a first status module to determine a first server-selection factor of a first server;
invoking a second status module to determine a second server-selection factor of a second server;
receiving said first server-selection factor at the central server;
receiving said second server-selection factor at the central server;
examining said first server-selection factor and said second server-selection factor to select a preferred server;
storing an identifier of said preferred server on the central server; and
directing a request for the replicated service received at the central server to said preferred server, wherein said directed request is received after said storing.
-
Specification