Method and apparatus for assigning tasks in a distributed server system
First Claim
1. Load balancing apparatus for assigning for processing received requests for service, said load balancing apparatus comprising:
- a plurality of host processors for processing requests for service, wherein each of said host processors is operative to process requests for service within a predetermined task size interval;
a request dispatch processor operative to receive a request for service and to ascertain, based upon such request, the task size of the respective request;
said request dispatch processor operative to dispatch the request for service to one of said plurality of host processors for which the task size interval encompasses the task size for the respective request.
3 Assignments
0 Petitions
Accused Products
Abstract
A distributed server system is disclosed which includes a load balancer and a plurality of host processors. The load balancer receives requests for service and distributes task assignments among the plurality of processors based upon the amount of work associated with the respective requests for service. More specifically, each host processor services requests for service within a predefined task size interval and the load balancer assigns to each host processor only those requests for service which involve task sizes within the particular task size interval associated with the respective processor. In the foregoing manner, the variability of the task sizes assigned to any given host processor is minimized and performance of the distributed server system is improved. In one embodiment of the invention, the thresholds defining the task size intervals served by respective host processors are selected using the task size distribution so as to attempt to allocate substantially the same amount of work to each of the host processors. In another embodiment of the invention, the thresholds defining the task size intervals served by the respective host processors are selected so as to intentionally vary the amount of work performed by the respective processors. This embodiment of the invention is intended to service requests for service in the nature of heavy tailed distributions. Task size interval assignments are skewed such that requests for service corresponding to smaller tasks are serviced by a host processor which is more lightly loaded than other processors. In this manner, mean slowdown metrics are improved.
-
Citations
39 Claims
-
1. Load balancing apparatus for assigning for processing received requests for service, said load balancing apparatus comprising:
-
a plurality of host processors for processing requests for service, wherein each of said host processors is operative to process requests for service within a predetermined task size interval;
a request dispatch processor operative to receive a request for service and to ascertain, based upon such request, the task size of the respective request;
said request dispatch processor operative to dispatch the request for service to one of said plurality of host processors for which the task size interval encompasses the task size for the respective request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 35, 36, 37, 39)
-
-
13. Load balancing apparatus for assigning tasks in response to requests for service appearing at said apparatus in the nature of a distribution of task sizes from small jobs to large jobs in which the small jobs comprise a majority of the requests for service and the large jobs comprise a minority of the requests for service, said apparatus comprising:
-
a plurality of host processors for processing requests for service, wherein each of said host processors is operative to process requests for service corresponding to task sizes within a predetermined task size interval, wherein said task size intervals are specified for the respective host processors such that at least one of the host processors servicing its respective task size interval is more lightly loaded than host processors servicing requests corresponding to larger task sizes;
a request dispatch processor operative to receive a request for service and to ascertain, based upon such request, the task size of the respective request;
said request dispatch processor being further operative to dispatch the request for service to the respective one of said plurality of host processors assigned to service tasks of the task size for the respective request. - View Dependent Claims (15)
-
-
16. A method for assigning a request for service to one of a plurality of host processors in response to the receipt of said request for service, comprising the steps of:
-
assigning each host processor of said plurality of host processors to handle requests for service associated with task sizes within a specified task size interval;
receiving a request for service;
determining the task size associated with the respective request for service in response to receipt of the request for service;
dispatching the request for service to the respective one of said plurality of host processors for which the task size associated with the request for service is within the task size interval serviced by the respective host processors. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for assigning requests for service received at distributed server system to one of a plurality of host processors for service, wherein the nature of the received requests for service correspond to task sizes in the nature of a distribution of job task sizes from small jobs to large jobs in which the small jobs comprise a majority of the requests for service and the large jobs comprise a minority of the requests for service, said method comprising:
-
assigning each host processor of said plurality of host processors to handle requests for service associated with task sizes within predetermined task size intervals such that at least one of the host processors is more lightly loaded than the host processors servicing requests for service involving larger task sizes;
receiving said request for service;
determining the task size associated with the respective request for service;
dispatching the request for service to the respective one of said plurality of host processors for which the task size associated with the request for service is within the respective host processors assigned task size interval. - View Dependent Claims (33, 34)
-
-
38. A method for assigning a request for service to one of a plurality of host processors in response to the receipt of said request for service, comprising the steps of:
-
receiving a request for service communicated via the Internet;
determining the task size associated with the respective request for service in response to receipt of the request for service; and
dispatching the request for service to the respective one of said plurality of host processors in response to the determined task size associated with the request for service.
-
Specification