System for balance distribution of requests across multiple servers using dynamic metrics
First Claim
1. A method for distributing incoming client requests across multiple servers in a networked client-server computer environment comprising:
- (a) collecting client requests incoming within a predetermined time interval;
(b) upon receipt of the at least two incoming client requests within the predetermined time interval, analyzing each of the client requests using categorical criteria and demographic criteria to extract attributes of the request;
(c) classifying the client requests based on the extracted attributes by comparing each request with a pattern selected from a set of patterns in an adaptive request table to find a match-pattern that best matches the request;
(d) using the match-pattern to associate a requirements vector with each request, the requirements vector being populated with at least five resource parameters that prescribe the expected resource requirements of the request;
(e) capturing resource capability information for each server at least once during the predetermined time interval, each server being associated with a capability vector refreshed with the resource capability information;
(f) following steps (d) and (e), for each client request and server pair, computing a vector space distance between the requirement vectors and capability vectors corresponding to the client request and the server respectively, the vector space distance being an update to an element in a cost matrix initialized at the start of the predetermined time interval;
(g) at the completion of the time interval, distributing the client requests across multiple servers to minimize a cost metric associated with the cost matrix for all combinations of client requests and server resource capabilities; and
(h) repeating steps (a) through (g) for subsequent ones of said time interval after initializing the cost matrix.
10 Assignments
0 Petitions
Accused Products
Abstract
A system for distributing incoming client requests across multiple servers in a networked client-server computer environment processes all requests as a set that occur within a given time interval and collects information on both the attributes of the requests and the resource capability of the servers to dynamically allocate the requests in a set to the appropriate servers upon the completion of the time interval. Preferably, the system includes a request table to collect at least two requests incoming within a predetermined time interval. A request examiner routine analyzes each collected request with respect to at least one attribute. A system status monitor collects resource capability information of each server in a resource table. An optimization and allocation process distributes collected requests in the request table across the multiple servers upon completion of said time interval based on an optimization of potential pairings of the requests in the request table with the servers in the resource table. The optimization and allocation process preferably analyzes metrics maintained in the request table and resource table as part of a relational database to allocate requests to servers based on a minimization of the metric distance between pairings of requests and servers. Preferably, the request table is part of a dynamic, relational database and a process of statistical inference for ascertaining expected demand patterns involving said the attributes adds predictive information about client requests as part of the request examiner routine.
115 Citations
13 Claims
-
1. A method for distributing incoming client requests across multiple servers in a networked client-server computer environment comprising:
-
(a) collecting client requests incoming within a predetermined time interval;
(b) upon receipt of the at least two incoming client requests within the predetermined time interval, analyzing each of the client requests using categorical criteria and demographic criteria to extract attributes of the request;
(c) classifying the client requests based on the extracted attributes by comparing each request with a pattern selected from a set of patterns in an adaptive request table to find a match-pattern that best matches the request;
(d) using the match-pattern to associate a requirements vector with each request, the requirements vector being populated with at least five resource parameters that prescribe the expected resource requirements of the request;
(e) capturing resource capability information for each server at least once during the predetermined time interval, each server being associated with a capability vector refreshed with the resource capability information;
(f) following steps (d) and (e), for each client request and server pair, computing a vector space distance between the requirement vectors and capability vectors corresponding to the client request and the server respectively, the vector space distance being an update to an element in a cost matrix initialized at the start of the predetermined time interval;
(g) at the completion of the time interval, distributing the client requests across multiple servers to minimize a cost metric associated with the cost matrix for all combinations of client requests and server resource capabilities; and
(h) repeating steps (a) through (g) for subsequent ones of said time interval after initializing the cost matrix. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for servicing multiple requests to be distributed across multiple servers in a networked client-server computer environment, the system comprising:
-
a request examiner routine for analyzing each of the client requests incoming within a predefined time interval, using categorical criteria and demographic criteria to extract attributes of the request;
a request table for collecting attribute information associated with each client request incoming within the predetermined time interval;
an adaptive request table populated with a set of patterns, each pattern associated with a generic request type that is most likely to be received by a proxy server, the adaptive request table suited for classifying client requests by comparing each request with a pattern selected from the set of patterns in the adaptive request table to find a match-pattern that best matches the client request resulting in a successful match, so that an expected demand on resources by the client request can be predicted using the match-pattern in the adaptive request table to associate a requirements vector with each request, the requirements vector being populated with at least five resource parameters that prescribe the expected demand on resources imposed by the request;
a relational database coupled with a process of statistical inference to facilitate the construction of an adaptive request table, the adaptive request table being updated by the process of statistical inference for each match-pattern resulting from a successful match of the client request with the set of patterns;
a resource table for collecting resource capability information about each server at least once during the predetermined time interval wherein each server is associated with a capability vector refreshed with the resource capability information;
a cost matrix initialized at the start of the time interval, the cost matrix characterized by a row index associated with a request identifier and a column index associated with a resource identifier, each element in the cost matrix representing a vector space distance between the requirements vector corresponding to the client reguest and the capability vector corresponding to the server resource;
a distance vector computing process for computing the vector space distance between the requirements vector and the capability vector for each pairing of the client request and the server resource; and
an optimization and allocation process for selecting a server resource for receiving each client request so that a sum of all costs in the cost matrix is minimized for all combinations of client requests and server resources. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification