IP Library Granted Patent US 7,712,102
Granted Patent B2
US 7,712,102 · App. 10/902,763 · Granted May 4, 2010

System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,712,102
App. No.
10/902,763
Granted
May 4, 2010
Kind
B2
Abstract

In one representative embodiment, a system for operating load balancers for multiple instance applications comprises a plurality of cluster nodes for executing applications, wherein at least a subset of the plurality of cluster nodes executes multiple applications and includes respective resource allocation modules for assigning resources between the multiple applications in response to performance data associated with the multiple applications, a plurality of load balancers for distributing application transactions between the plurality of cluster nodes, and a configuration process that analyzes performance data associated with the multiple applications and dynamically configures the plurality of load balancers in response to the analysis.

Claims (39)

1. A system for operating load balancers for multiple instance applications, comprising:

a plurality of cluster nodes for executing a plurality of applications, wherein at least a subset of said plurality of cluster nodes executes multiple applications of said plurality of applications and includes respective resource allocation modules for assigning resources between said multiple applications in response to performance data associated with said multiple applications;

a plurality of load balancers for distributing application transactions between said plurality of cluster nodes, wherein at least one load balancer of said plurality of load balancers distributes said application transactions of at least one application of said plurality of applications and another load balancer of said plurality of load balancers distributes said application transactions of at least one different application of said plurality of applications; and

a load balancer configuration utility that analyzes performance data associated with said multiple applications and said load balancer configuration utility is directly communicatively coupled to said plurality of load balancers and dynamically configures said plurality of load balancers in response to said analysis, wherein said load balancer configuration utility calculates a set of cluster node weights for each of said plurality of load balancers in response to said analysis, wherein said cluster node weights are related to a number of processors divided by a length of a related work load queue and divided by a processor utilization rate, wherein each of said plurality of load balancers distributes application transactions using a round-robin algorithm weighted by a set of said cluster node weights.

2. The system of claim 1 wherein said load balancer configuration utility analyzes application loads associated with respective cluster nodes during analysis of said performance data.

3. The system of claim 1 wherein said load balancer configuration utility submits queries to identify applications executing on said plurality of cluster nodes and configures said plurality of load balancers in response to said querying.

4. The system of claim 1 wherein said load balancer configuration utility autonomously detects an addition of a cluster node to a cluster system and reconfigures at least a subset of said plurality of load balancers in response to said addition.

5. The system of claim 1 wherein said resource allocation modules reassign processor resources in response to performance data.

6. The system of claim 1 wherein said resource allocation modules reassign resources according to service level objectives.

7. The system of claim 1 wherein each of said plurality of cluster nodes comprises a performance monitor process for generating performance data.

8. The system of claim 1 wherein said load balancer configuration utility analyzes resource allocation data associated with respective cluster nodes during analysis of performance data.

9. A method, comprising:

executing a plurality of applications on a plurality of cluster nodes, wherein at least a subset of said plurality of cluster nodes executes multiple applications of said plurality of applications;

dynamically reassigning resources between said multiple applications in response to performance data associated with said multiple applications;

distributing application transactions between said plurality of cluster nodes by a plurality of load balancers according to parameters, wherein at least one load balancer of said plurality of load balancers distributes said application transactions of at least one application of said plurality of applications and another load balancer of said plurality of load balancers distributes said application transactions of at least one different application of said plurality of applications; and

dynamically configuring said plurality of load balancers in response to performance data associated with said multiple applications, wherein said load balancer configuration utility calculates a set of cluster node weights for each of said plurality of load balancers in response to said analysis, wherein said cluster node weights are related to a number of processors divided by a length of a related work load queue and divided by a processor utilization rate, wherein said dynamically configuring comprises analyzing application load characteristics of cluster nodes.

10. The method of claim 9 wherein said parameters include said cluster node weights and said distributing application transactions is performed using a round-robin algorithm weighted according to said cluster node weights.

11. The method of claim 9 further comprising:

identifying applications executing on said plurality of cluster nodes; and

dynamically configuring said parameters in response to said identifying.

12. The method of claim 9 further comprising:

detecting an addition of a cluster node to said cluster system; and

dynamically configuring said parameters in response to said detecting.

13. The method of claim 9 wherein dynamically configuring said parameters comprises:

reassigning at least one item from the list consisting of processor resources, memory resources, input/output (IO) resources, and operating system resources.

14. The method of claim 9 further comprising:

operating a respective performance monitoring process on each cluster node of said subset to generate performance data.

15. The method of claim 9 wherein said dynamically reassigning resources comprises:

reassigning resources according to a service level objectives associated with said multiple applications.

16. A computer readable storage medium including executable instructions for operating load balancers for multiple instance applications, comprising:

code for retrieving performance data associated with execution of applications on a plurality of cluster nodes, wherein at least a subset of said plurality of cluster nodes executes multiple applications;

code for calculating multiple sets of cluster node weights using said performance data; and

code for dynamically configuring a plurality of load balancers using said multiple sets of cluster node weights to control distribution of application transactions by said plurality of load balancers to said plurality of cluster nodes, wherein at least one load balancer of said plurality of load balancers distributes said application transactions of at least one application of said plurality of applications and another load balancer of said plurality of load balancers distributes said application transactions of at least one different application of said plurality of applications, wherein said load balancer configuration utility calculates a set of cluster node weights for each of said plurality of load balancers in response to said analysis, wherein said cluster node weights are related to a number of processors divided by a length of a related work load queue and divided by a processor utilization rate, wherein each of said plurality of load balancers distributes application transactions using a round-robin algorithm weighted by a set of said cluster node weights.

17. The computer readable storage medium of claim 16 wherein said code for calculating analyzes application load characteristics of respective nodes.

18. The computer readable storage medium of claim 16 wherein said code for calculating analyzes application resource allocation data associated with respective nodes.

19. The computer readable storage medium of claim 16 further comprising:

code for detecting an addition of a cluster node to said cluster system, wherein said code for calculating calculates at least one revised set of cluster node weights and said code for dynamically configuring reconfigures at least one load balancer using said revised set of cluster node weights.

20. The computer readable storage medium of claim 16 further comprising:

code for identifying applications executed on each of said plurality of cluster nodes.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 055360/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2004
From: HERINGTON, DANIEL E.; BACKER, BRYAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 015999/0341 →