System and methods of cooperatively load-balancing clustered servers
First Claim
1. A method of cooperatively load-balancing a cluster of server computer systems for servicing client requests issued with respect to a plurality of client computer systems, said method comprising the steps of:
- a) selecting, by a client computer system, a target server computer system from said cluster of server computer systems to service a particular client request using available accumulated selection basis data;
b) evaluating, by said target server computer system, said particular client request to responsively provide instance selection basis data dynamically dependent on the configuration of said target server computer and said particular client request; and
c) incorporating said instance selection basis data into said available accumulated selection basis data to affect the subsequent selection of said target computer system with respect to a subsequent instance of said particular client request.
1 Assignment
0 Petitions
Accused Products
Abstract
Host computer systems dynamically engage in independent transactions with servers of a server cluster to request performance of a network service, preferably a policy-based transfer processing of data. The host computer systems operate from an identification of the servers in the cluster to autonomously select servers for transactions qualified on server performance information gathered in prior transactions. Server performance information may include load and weight values that reflect the performance status of the selected server and a server localized policy evaluation of service request attribute information provided in conjunction with the service request. The load selection of specific servers for individual transactions is balanced implicitly through the cooperation of the host computer systems and servers of the server cluster.
241 Citations
36 Claims
-
1. A method of cooperatively load-balancing a cluster of server computer systems for servicing client requests issued with respect to a plurality of client computer systems, said method comprising the steps of:
-
a) selecting, by a client computer system, a target server computer system from said cluster of server computer systems to service a particular client request using available accumulated selection basis data;
b) evaluating, by said target server computer system, said particular client request to responsively provide instance selection basis data dynamically dependent on the configuration of said target server computer and said particular client request; and
c) incorporating said instance selection basis data into said available accumulated selection basis data to affect the subsequent selection of said target computer system with respect to a subsequent instance of said particular client request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of load-balancing a cluster of server computer systems in the cooperative providing of a network service, said method comprising the steps of:
-
a) selecting, by each of a plurality of host computers, server computers within a computer cluster to which to issue respective service requests;
b) responding, by a corresponding one of said plurality of host computers, to the rejection of a predetermined service request by selecting a different server computer to which to issue said predetermined service request;
c) receiving, in regard to said respective service requests by the respective ones of said plurality of host computers, load and weight information from the respective server computers; and
d) evaluating, by each of said plurality of host computers, the respective load and weight information received with respect to server computers of said computer cluster as a basis for a subsequent performance of said step of selecting. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A server cluster operated to provide a load-balanced network service, said server cluster comprising:
-
a) a plurality of server computers individually responsive to service requests to perform corresponding processing services, wherein said server computers are operative to initially respond to said service requests to provide load and weight values, wherein said load and weight values represent the current operating load a policy-based priority level of a respective server computer relative to a particular service request; and
b) a host computer system operative to autonomously issue said service requests respectively to said plurality of server computers, said host computer system further operative to select a target server computer from said plurality of server computers to receive an instance of said particular service request based on said load and weight values. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer system providing, on behalf of client computer systems, a network service through a scalable cluster of server computer systems, said system comprising:
-
a) a plurality of server computers coupled to provide a defined service, wherein a server computer of said plurality provides a response, including load information, in acknowledgment of a predetermined service request issued to said server computer system, said response selectively indicating nonacceptance of said predetermined service request; and
b) a client computer system having an identification list of said plurality of server computer systems, said client computer system being operative to autonomously select a first server computer system from said identification list to which to issue said predetermined service request, wherein said client computer system is reactive to said response, on indicated nonacceptance of said predetermined service request, to autonomously select a second server computer system from said identification list to which to issue said predetermined service request, and wherein said client computer system is responsive to said load information of said response in subsequently autonomously selecting said first and second server computer systems. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A method of dynamically managing the distribution of client requests to a plurality of server computer systems providing a network service, each of said server computer systems being discretely configured to respond to client requests, said method comprising the steps of:
-
a) processing client requests to select for a particular client request a particular server computer system of said plurality of server computer systems to service said particular client request, wherein the selection of said particular server computer system is dependent on the evaluation of accumulated selection qualification information;
b) forwarding said particular client request to said particular server computer system; and
c) receiving from said particular server computer system with respect to said particular client request instance selection qualification information discretely determined by said particular server computer system with respect to said particular client request, wherein said instance selection qualification information is incorporated into said accumulated selection qualification information. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. A method of distributing computational load over a plurality of server systems provided to support execution of a data processing service on behalf of a plurality of client systems, wherein the computational load is generated in response to client requests issued through a plurality of client processes, said method comprising the steps of:
-
a) first processing a particular client request to associate attribute data from a respective client process of sold plurality of client processes with said particular client request;
b) selecting, for said particular client request, a particular target server system from among said plurality of server systems by matching said particular client request against accumulated selection information to identify said particular target server system;
c) second processing said particular client request, including said attribute data, by said particular target server system to dynamically generate instance selection information including a load value for said particular target server system and reflective of the combination of said particular client request and said particular target server system; and
d) incorporating said instance selection information into said accumulated selection information for subsequent use in said step of selecting. - View Dependent Claims (32, 33, 34, 35, 36)
-
Specification