Load balancer in environment services patterns
First Claim
1. A method for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of:
- (a) receiving incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components;
(b) storing the second subset of the requests on the load balancer upon receipt thereof from the activity module;
(c) determining an availability of server components from among the plurality of server components;
(d) compiling a listing of available server components;
(e) determining which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of;
current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and
(f) sending each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for distributing incoming requests from a user interface amongst a client and server components for optimizing usage of resources. Incoming requests are first received and stored by an activity module. The activity module instructs a client to handle a first subset of the requests and passes a second subset of the requests on to a utilization-based load balancer. The second subset of the requests are stored on the load balancer, and an availability of server components is determined and a listing of available server components is compiled. A determination is made as to which server component on the listing of available server components is most appropriate to receive a particular request. Each particular request of the second subset of requests is sent to the selected server component determined to be most appropriate to receive the particular request.
-
Citations
12 Claims
-
1. A method for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of:
-
(a) receiving incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components;
(b) storing the second subset of the requests on the load balancer upon receipt thereof from the activity module;
(c) determining an availability of server components from among the plurality of server components;
(d) compiling a listing of available server components;
(e) determining which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of;
current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and
(f) sending each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests. - View Dependent Claims (2, 3, 4)
-
-
5. A computer program embodied on a computer readable medium for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of:
-
(a) a code segment that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components;
(b) a code segment that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module;
(c) a code segment that determines an availability of server components from among the plurality of server components;
(d) a code segment that compiles a listing of available server components;
(e) a code segment that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of;
current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and
(f) a code segment that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests. - View Dependent Claims (6, 7, 8)
-
-
9. A system for distributing incoming requests from a client amongst server components for optimizing usage of resources, comprising the steps of:
-
(a) logic that receives incoming requests from a user interface, wherein the user interface resides on a client and the requests are received by an activity module, and wherein the activity module instructs the client to handle a first subset of the requests on the client and the activity module forwards a second subset of the requests to a utilization-based load balancer, such that the activity module resides between the user interface and a plurality of server components;
(b) logic that stores the second subset of the requests on the load balancer upon receipt thereof from the activity module;
(c) logic that determines an availability of server components from among the plurality of server components;
(d) logic that compiles a listing of available server components;
(e) logic that determines which server component on the listing of available server components is most appropriate to receive each of the second subset of the requests, wherein the load balancer calculates an amount of utilization that each available server component is currently experiencing wherein the amount of utilization of each available server components is calculated based on at least two of;
current CPU utilization, kernel scheduling run-queue length, current network traffic at a node to the server component, and a number of requests currently being serviced; and
(f) logic that sends each of the second subset of the requests to the selected server component determined to be most appropriate to receive each of the second subset of the requests. - View Dependent Claims (10, 11, 12)
-
Specification