Load-balancing framework for a cluster
First Claim
1. A system, comprising:
- a plurality of computers configured to implement;
a cluster comprising a plurality of nodes configured to execute a distributed application component, wherein each node comprises a load-balancing framework providing a standard load-balancing application programming interface (API);
a pluggable load balancer, wherein the pluggable load balancer is configured to communicate with the plurality of nodes using the standard load-balancing framework API to forward a request to one of the plurality of nodes according to a load-balancing algorithm; and
a naming service configured to receive a lookup request for the application component and in response return a stub corresponding to one of the plurality of nodes, wherein the pluggable load balancer is comprised in the naming service, and wherein the stub corresponds to a next node as determined by the pluggable load balancer;
wherein the load-balancing framework on each node provides for the pluggable load balancer to be selectable for plugging in to the system, wherein the pluggable load balancer is selectable from among a plurality of different pluggable load balancers not currently plugged in to the system, and wherein the load-balancing framework on each node is configured to support communication with each of the plurality of different pluggable load balancers using the same standard load-balancing framework API.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of a system and method for balancing nodal loading in a cluster are disclosed. In a cluster, each node may execute an instance of a distributed application component. A pluggable load balancer may receive requests targeted at the application component. For each request, the load balancer may invoke a pluggable load-balancing function to determine a next node to which the request should be forwarded to balance the workload of the cluster nodes. Each node of the cluster may include a load-balancing framework that provides a standard load-balancing API. In order to determine the next node to which a request should be milted, the load balancer may send requests for node information conforming to the API, to the cluster members. This information may include nodal CPU speed, memory capacity, number of queued requests, and number of requests serviced during a specified time period.
-
Citations
31 Claims
-
1. A system, comprising:
a plurality of computers configured to implement; a cluster comprising a plurality of nodes configured to execute a distributed application component, wherein each node comprises a load-balancing framework providing a standard load-balancing application programming interface (API); a pluggable load balancer, wherein the pluggable load balancer is configured to communicate with the plurality of nodes using the standard load-balancing framework API to forward a request to one of the plurality of nodes according to a load-balancing algorithm; and a naming service configured to receive a lookup request for the application component and in response return a stub corresponding to one of the plurality of nodes, wherein the pluggable load balancer is comprised in the naming service, and wherein the stub corresponds to a next node as determined by the pluggable load balancer; wherein the load-balancing framework on each node provides for the pluggable load balancer to be selectable for plugging in to the system, wherein the pluggable load balancer is selectable from among a plurality of different pluggable load balancers not currently plugged in to the system, and wherein the load-balancing framework on each node is configured to support communication with each of the plurality of different pluggable load balancers using the same standard load-balancing framework API. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A method, comprising:
using one or more computers to perform; selecting a current pluggable load balancer, from among a plurality of different pluggable load balancers, for a server cluster, wherein each node of the cluster comprises a pluggable load-balancing framework, and wherein the pluggable load balancer is specified according to the pluggable load-balancing framework; the pluggable load balancer forwarding a request to one of the nodes according to a load-balancing algorithm and in compliance with a load-balancing API comprised in the pluggable load-balancing framework; selecting a different one of the plurality of different pluggable load balancers to replace the current pluggable load balancer, wherein each of the plurality of different pluggable load balancers uses the same standard load-balancing framework API to communicate with the nodes of the cluster; and sending, by the load-balancing framework, load-balancing support data on a periodic or aperiodic basis to the pluggable load balancer in compliance with the API, wherein the load-balancing support data comprises one or more of the following;
a node CPU speed, a number of jobs in execution, a number of jobs in queue awaiting execution, or a number of jobs executed during a time period.- View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
21. A computer-readable storage medium storing program instructions, wherein the program instructions are computer-executable to implement:
-
a load-balancing framework providing a standard load-balancing application programming interface (API); a pluggable load balancer, wherein the pluggable load balancer is configured to communicate with a plurality of nodes of a server cluster using the standard load-balancing framework API to forward a request to one of the plurality of nodes according to a load-balancing algorithm; and a naming service configured to receive a lookup request for the application component and in response return a stub corresponding to one of the plurality of nodes, wherein the pluggable load balancer is comprised in the naming service, and wherein the stub corresponds to a next node as determined by the pluggable load balancer; wherein the load-balancing framework provides for the pluggable load balancer to be selectable for plugging in to the system, wherein the pluggable load balancer is selectable from among a plurality of different pluggable load balancers not currently plugged in to the system, and wherein the load-balancing framework is configured to support communication with each of the plurality of different pluggable load balancers using the same standard load-balancing framework API. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
Specification