IP Library Granted Patent US 8,775,624
Granted Patent B2
US 8,775,624 · App. 12/649,957 · Granted Jul 8, 2014

Load-balancing and technology sharing using Lempel-Ziv complexity to select optimal client-sets

Inventor: Douglas S. McNair (Leawood, KS)
Assignee: Cerner Innovation, Inc.
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 8,775,624
App. No.
12/649,957
Granted
Jul 8, 2014
Kind
B2
Abstract

Optimal assignment of clients to client-sets, resources to resource-sets, and client-sets to resource-sets in a server farm allows for periodic re-balancing of the load as client usership and concurrent-user activity fluctuate. Unique combinations of clients are generated as candidate client-sets, and historical load measurements for clients in each candidate client-set are summed. Summed loads for the candidate client-sets are compared against available resources of resource-sets. An objective function is employed to identify optimal assignment of clients to client-sets, resources to resource-sets, and client-sets to resource-sets.

Claims (43)

1. A method of network resource allocation, comprising:

collecting resource consumption measurements of a plurality of back-end server devices, wherein each back-end server device is allocated to at least one of a plurality of client devices to form a plurality of existing server-client combinations to process requests from the plurality of client devices;

determining whether the resource consumption measurements of each existing server-client combination during a first time period meets a service level agreement requirement;

calculating an existing server-client combination bitstring based on whether the resource consumption measurements of each existing server-client combinations meets the service level agreement requirement;

creating possible server-client combinations comprising random unique combinations of each of the back-end server devices and the client devices excluding the existing server-client combinations;

determining a possible server-client load for each of the possible server-client combinations based on the resource consumption measurements collected during the first time period;

determining whether the possible server-client load of each for the possible server-client combinations meets the service level agreement requirement;

calculating a possible server-client combination bitstring based on whether the possible server-client load of each possible server-client combination meets the service level agreement requirement; and

reallocating each back-end server device to at least one client device based on the existing server-client combination bitstring and the possible server-client combination bitstring when the resource consumption measurement of each existing server-client combination does not meet a service level agreement requirement and when the possible server-client load for each of the possible server-client combinations meets the service level agreement requirement.

2. The method of claim 1 , wherein determining whether the resource consumption measurements of each server-client combination during a first time period meets a service-level agreement requirement further comprises:

summing the resource consumption measurements collected during the first time period for each server-client combination; and

determining whether the summed resource consumption measurements for each server-client combination meets the service level agreement requirement.

3. The method of claim 1 , wherein creating possible server-client combinations further comprises:

determining whether an application mix and business rules of all of the client devices in one of the possible server-client combinations are compatible; and

when the application mix and the business rules are not compatible, removing the one of the possible server-client combinations from the possible server-client combinations.

4. The method of claim 1 , wherein determining whether the possible server-client load for each of the possible server-client combinations meets the service level agreement requirement further comprises:

summing the possible server-client load of each of the possible server-client combinations during the first time period; and

determining whether the summed possible server-client set load for each of the possible server-client combinations meets the service level agreement requirement.

5. The method of claim 1 , wherein calculating an existing server-client combination bitstring further comprises calculating a Lempel-Ziv complexity for each existing server-client combination bitstring.

6. The method of claim 1 , wherein calculating a possible server-client combination bitstring further comprises calculating a Lempel-Ziv complexity for each possible server-client combination bitstring.

7. The method of claim 1 , wherein reallocating each back-end server to at least one client is further based on a Lempel-Ziv complexity for each existing server-client combination bitstring and a Lempel-Ziv complexity for each possible server-client combination bitstring.

8. A system for network resource allocation, comprising:

a controller configured to

collect resource consumption measurements of a plurality of back-end server devices, wherein each back-end server device is allocated to at least one of a plurality of client devices to form a plurality of existing server-client combinations to process requests from the plurality of client devices;

determine whether the resource consumption measurements of each existing server-client combination during a first time period meets a service level agreement requirement;

calculate an existing server-client combination bitstring based on whether the resource consumption measurements of each existing server-client combinations meets the service level agreement requirement;

create possible server-client combinations comprising random unique combinations of each of the back-end server devices and the client devices excluding the existing server-client combinations;

determine a possible server-client load for each of the possible server-client combinations based on the resource consumption measurements collected during the first time period;

determine whether the possible server-client load of each for the possible server-client combinations meets the service level agreement requirement;

calculate a possible server-client combination bitstring based on whether the possible server-client load of each possible server-client combination meets the service level agreement requirement; and

reallocate each back-end server device to at least one client device based on the existing server-client combination bitstring and the possible server-client combination bitstring when the resource consumption measurement of each existing server-client combination does not meet a service-level agreement requirement and when the possible server-client load for each of the possible server-client combinations meets the service level agreement requirement.

9. The system of claim 8 , wherein the controller is further configured to:

sum the resource consumption measurements collected during the first time period for each server-client combination; and

determine whether the summed resource consumption measurements for each server-client combination meets the service level agreement requirement.

10. The system of claim 8 , wherein the controller is further configured to:

determine whether an application mix and business rules of all of the client devices in one of the possible server-client combinations are compatible; and

when the application mix and the business rules are not compatible, remove the one of the possible server-client combinations from the possible server-client combinations.

11. The system of claim 8 , wherein the controller is further configured to:

sum the possible server-client load of each of the possible server-client combinations during the first time period; and

determine whether the summed possible server-client set load for each of the possible server-client combinations meets the service level agreement requirement.

12. The system of claim 8 , wherein the controller is further configured to calculate an existing server-client combination bitstring further comprises calculating a Lempel-Ziv complexity for each existing server client combination bitstring.

13. The system of claim 8 , wherein the controller is further configured to calculate a possible server-client combination bitstring further comprises calculating a Lempel-Ziv complexity for each possible server-client combination bitstring.

14. The system of claim 8 , wherein the controller is further configured to reallocate each back-end server to at least one client is further based on a Lempel-Ziv complexity for each existing server client combination bitstring and a Lempel-Ziv complexity for each possible server-client combination bitstring.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE CITY/STATE, PREVIOUSLY RECORDED ON REEL 023718 FRAME 0629. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 1, 2014
From: MCNAIR, DOUGLAS S.
To: CERNER INNOVATION, INC.
Reel/Frame 032798/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: MCNAIR, DOUGLAS S.
To: CERNER INNOVATION, INC.
Reel/Frame 023718/0629 →
Continuity (2)
Provisional Application 61141818 · Dec 31, 2008
Related Publication 20100169490A1 · Jul 1, 2010