IP Library Granted Patent US 9,374,273
Granted Patent B2
US 9,374,273 · App. 13/847,793 · Granted Jun 21, 2016

Dynamic HTTP load balancing

Inventors: Roberto DeLima (Apex, NC); Craig A. Lanzen (Lambertville, MI)
Assignee: International Business Machines Corporation
H04L41/0803H04L29/06H04L41/0823H04L41/0846H04L41/0856H04L41/0869H04L41/5009H04L41/5054H04L67/02H04L67/1008H04L67/1014H04L67/1023H04L67/14H04L67/142H04L67/34H04L67/1002H04L69/329H04L2029/06054
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 9,374,273
App. No.
13/847,793
Granted
Jun 21, 2016
Kind
B2
Abstract

The invention is a method and apparatus for facilitating facilitates load balancing in a server farm. In accordance with various aspects of the invention, all of the information about each server necessary for a load balancing program to define and execute a load balancing algorithm is stored at a predetermined URL for each server. The load balancer can query the predefined URL, which returns the necessary information. The load balancer then dynamically configures the load balancing algorithm in accordance with the returned information.

Claims (15)

1. A method of configuring a load balancing program in a load balancer for a cluster of servers to dispatch client requests to the servers in the cluster, the method comprising the steps of:

the load balancer detecting that the cluster cannot handle the client requests with a predetermined level of performance, and in response, the load balancer automatically requesting configuration information for an other server that is not currently active in the cluster, to configure the load balancing program for adding the other server to the cluster to handle client requests; and

after receipt of the configuration information for the other server, the load balancer automatically configuring the load balancing program for the cluster to add the other server to the cluster in accordance with the configuration information received for the other server,

wherein the configuration information comprises a cookie affinity rule for sending different requests in a given session to a same server clone in a server group, subject to session affinity cookies being unique to each server in the server group, and wherein the load balancer configures the load balancing program for the other server based on the cookie affinity rule.

2. The method of claim 1 wherein the configuration information further comprises a content-based dispatching rule, and the load balancer configures the load balancing program for the other server additionally based on the content-based dispatching rule.

3. The method of claim 1 wherein the configuration information further comprises an address of health information for the other server, and the load balancer additionally configures the load balancing program for the other server to include the address of health information for the other server, and the load balancing program subsequently queries the health of the other server via the address to determine whether the other server is able to handle a client request.

4. The method of claim 1 wherein the configuration information further comprises a time-of-day rule, and the load balancer configures the load balancing program for the other server additionally based on the time-of-day rule.

5. A computer program product for configuring a load balancing program for a cluster of servers to dispatch client requests to the servers in the cluster, the computer program product comprising:

one or more computer-readable nontransitory storage devices and program instructions stored on at least one of the one or more storage devices, the program instructions comprising:

program instructions to detect that the cluster cannot handle the client requests with a predetermined level of performance, and in response, automatically request configuration information for an other server that is not currently in the cluster, to configure the load balancing program for adding the other server to the cluster to handle client requests; and

program instructions to automatically configure the load balancing program for the cluster to add the other server to the cluster in accordance with the configuration information received for the other server,

wherein the configuration information comprises a cookie affinity rule for sending different requests in a given session to a same server clone in a server group, subject to session affinity cookies being unique to each server in the server group, and wherein the load balancer configures the load balancing program for the other server based on the cookie affinity rule.

6. The computer program product of claim 5 wherein the configuration information further comprises an address of health information for the other server, and the configuring program instructions configure the load balancing program for the other server to include the address of health information for the other server, and further comprising program instructions, stored on at least one of the one or more storage devices, to subsequently query the health of the other server via the address to determine whether the other server is able to handle a client request.

7. The computer program product of claim 5 wherein the configuration information further comprises a content-based dispatching rule, and the configuring program instructions configure the load balancing program for the other server additionally based on the content-based dispatching rule.

8. The computer program product of claim 5 wherein the configuration information further comprises a time-of-day rule, and the configuring program instructions configure the load balancing program for the other server additionally based on the time-of-day rule.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2014
From: DELIMA, ROBERTO; LANZEN, CRAIG A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 034480/0767 →
Continuity (5)
Continuation 13552644 · Jul 19, 2012
Continuation 13548781 · Jul 13, 2012
Continuation 12355984 · Jan 19, 2009
Continuation 09912570 · Jul 24, 2001
Related Publication 20130219028A1 · Aug 22, 2013