Client-side load-balancing in client server network
First Claim
1. A method of apportioning load in a client server network having a first plurality of server computers, wherein load is apportioned among a second plurality of the server computers, the second plurality of server computers being a subset of the first plurality of server computers, the method comprising the steps of:
- storing a load balance list on each server computer of the second plurality of server computers;
storing common data on each server computer of the second plurality of server computers;
for each one of a plurality of client computers connecting to the client server network, receiving the load balance list from a server computer of the second plurality of server computers;
performing a server selection function at a given client computer among the plurality of client computers using data from the received load balance list to identify a select server computer among the second plurality of server computers;
responsive to the performing step, accessing the common data from the select server computer with the given client computer; and
updating the load balance list for the client server network, the step of updating comprising the steps of;
(i) storing an updated load balance list on each one of a third plurality of server computers among the first plurality of server computers, wherein the updated load balance list identifies each server computer of the third plurality of server computers; and
(ii) receiving at one or more of the plurality of client computers the updated load balance list from a server computer of the third plurality of server computers;
wherein the step of performing the server selection function at a given client computer among the plurality of client computers uses data from the received updated load balance list to identify a select server computer among the third plurality of server computers.
8 Assignments
0 Petitions
Accused Products
Abstract
Load balancing is achieved at the client side, rather than at the server side of a client-server network. Each client computer regularly receives a load balance list, enumerating respective addresses of multiple server computers. Each client computer executes a server selection function which determines the average load for each server in the list. In the event of a server computer failure, a system administrator can remove the server computer from the load balance list and reapportion the load. The client computer'"'"'s list then is updated when the list is received during subsequent access. In the event a client computer determines that a server is non-responsive, such server is removed from the load balance list for the client computer which made such determination. The client computer also stores a back-up list of servers for use when all servers on the load balance list are non-responsive.
439 Citations
8 Claims
-
1. A method of apportioning load in a client server network having a first plurality of server computers, wherein load is apportioned among a second plurality of the server computers, the second plurality of server computers being a subset of the first plurality of server computers, the method comprising the steps of:
-
storing a load balance list on each server computer of the second plurality of server computers; storing common data on each server computer of the second plurality of server computers; for each one of a plurality of client computers connecting to the client server network, receiving the load balance list from a server computer of the second plurality of server computers; performing a server selection function at a given client computer among the plurality of client computers using data from the received load balance list to identify a select server computer among the second plurality of server computers; responsive to the performing step, accessing the common data from the select server computer with the given client computer; and updating the load balance list for the client server network, the step of updating comprising the steps of; (i) storing an updated load balance list on each one of a third plurality of server computers among the first plurality of server computers, wherein the updated load balance list identifies each server computer of the third plurality of server computers; and (ii) receiving at one or more of the plurality of client computers the updated load balance list from a server computer of the third plurality of server computers; wherein the step of performing the server selection function at a given client computer among the plurality of client computers uses data from the received updated load balance list to identify a select server computer among the third plurality of server computers. - View Dependent Claims (2, 3)
-
-
4. A method of apportioning load in a client server network having a first plurality of server computers, wherein load is apportioned among a second plurality of the server computers, the second plurality of server computers being a subset of the first plurality of server computers, the method comprising the steps of:
-
storing a load balance list on each server computer of the second plurality of server computers; storing common data on each server computer of the second plurality of server computers; for each one of a plurality of client computers connecting to the client server network, receiving the load balance list from a server computer of the second plurality of server computers; performing a server selection function at a given client computer among the plurality of client computers using data from the received load balance list to identify a select server computer among the second plurality of server computers; and responsive to the performing step, accessing the common data from the select server computer with the given client computer; wherein the step of storing a load balance list comprises the step of storing a first load balance list on at least one server computer among the second plurality of server computers, and storing a second load balance list different from the first load balance list on at least one other server computer among the second plurality of server computers.
-
-
5. A method of apportioning load in a client server network having a first plurality of server computers, wherein load is apportioned among a second plurality of the server computers, the second plurality of server computers being a subset of the first plurality of server computers, the method comprising the steps of:
-
storing a load balance list on each server computer of the second plurality of server computers; storing common data on each server computer of the second plurality of server computers; for each one of a plurality of client computers connecting to the client server network, receiving the load balance list from a server computer of the second plurality of server computers; performing a server selection function at a given client computer among the plurality of client computers using data from the received load balance list to identify a select server computer among the second plurality of server computers; and responsive to the performing step, accessing the common data from the select server computer with the given client computer; wherein the load balance list is a first load balance list, and further comprising the steps of; (i) storing a back-up load balance list on a plurality of client computers, wherein the back-up load balance list identifies at least one server computer not among the second plurality of server computers; (ii) determining by one of the plurality of client computers which stores the back-up load balancing list that all server computers identified in the first load balance list are non-responsive; and (iii) connecting said one of the plurality of client computers to a server computer identified in the back-up load balance list. - View Dependent Claims (6)
-
-
7. A client server network, comprising:
-
a plurality of server computers; a plurality of client computers; a load balance list identifying a subset of the plurality of server computers, wherein the load balance list is stored at one of the plurality of client computers, wherein the load balance list is a first load balance list, common data stored at each one server computer of the server computers identified in the first load balance list; processing means at said one of the plurality of client computers which executes a selection function to select one server computer of the server computers identified in the first load balance list, wherein the selection function apportions load among the server computers identified in the first load balance list; means for connecting said one of the plurality of client computers to the selected one server computer to access a portion of the common data; a back-up load balance list stored at said one of the plurality of client computers, wherein the back-up load balance list identifies at least one server computer not identified in the first load balance list; means for determining at said one of the plurality of client computers that all server computers identified in the first load balance list are non-responsive; and means for connecting said one of the plurality of client computers to a server computer identified in the back-up load balance list. - View Dependent Claims (8)
-
Specification