IP Library › Granted Patent US 10,652,318
Granted Patent B2
US 10,652,318 · App. 13/572,848 · Granted May 12, 2020

Systems and methods for load balancing using predictive routing

Inventor: John Ernest Rodriguez (Capitola, CA)
Assignee: VERISIGN, INC.
H04L67/1008H04L61/1511H04L67/1023H04L67/1029H04L67/28
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 10,652,318
App. No.
13/572,848
Granted
May 12, 2020
Kind
B2
Abstract

Systems and methods are disclosed for routing requests for information based on predictive data. The systems and methods may receive measurement data indicative of states of each of a plurality of destination servers, and generate predicted measurement data values for each of the plurality of destination servers based on the retrieved measurement data. The predicted measurement data values may represent predicted states of each of the destination servers at a time later than a time corresponding to the received measurement data. The systems and methods may also receive requests for information from a client computer, and route the received requests for information to one of the plurality of destination servers based on the predicted measurement data value.

Claims (100)

1. A system for routing requests for information based on predictive data, the system comprising:

one or more memories storing instructions; and

one or more processors capable of executing the instructions to:

receive, for each of a plurality of destination servers, corresponding measurement data values that indicate an operational state of the destination server at a first time;

generate, based on the corresponding measurement data values for each of the plurality of destination servers, corresponding predicted data values for the destination server that predict the operational state of the destination server at a second time later than the first time;

receive a first set of requests for information from one or more client computers;

for each destination server included in the plurality of destination servers, combine the corresponding measurement data values and the corresponding predicted data values to generate a combined time series associated with a time interval between the first time and the second time;

for each destination server included in the plurality of destination servers, calculate, based on the combined time series corresponding to the destination server in the plurality of destination servers, a corresponding predicted state change in the operational state of the destination server from the first time to the second time;

select, based on a plurality of combined time series that includes the combined time series corresponding to each destination server of the plurality of destination servers, a set of selected destination servers for which the corresponding predicted state change is predicted to improve from the first time to the second time;

route the first set of requests for information to a first destination server included in the set of selected destination servers;

update a first combined time series corresponding to the first destination server based on updated measurement data values and updated predicted data values determined in response to the first destination server processing the first set of requests;

receive a second set of requests for information from the one or more client computers; and

route the second set of requests for information to a second destination server corresponding to a second combined time series having a lower mean value than the updated first combined time series.

2. The system of claim 1 , the one or more processors being further configured to:

receive first and second measurement data values that respectively indicate first and second state criteria in the operational state of each of the plurality of destination servers at the first time;

generate, based on the first and second measurement data values for each destination server of the plurality of destination servers, corresponding combined measurement data values for each destination server of the plurality of destination servers; and

generate, for each destination server of the plurality of destination servers, the corresponding predicted data values based on the corresponding combined measurement data values for the destination server.

3. The system of claim 2 , wherein the first and second state criteria each includes one selected from the group consisting of:

a traffic load on the corresponding destination server and

a processing load on the corresponding destination server.

4. The system of claim 2 , the one or more processors being further configured to:

normalize the first and the second measurement data values; and

generate the combined measurement data values using the normalized first and second data values.

5. The system of claim 4 , the one or more processors being further configured to:

generate the combined measurement data values as a weighted average of the normalized first and second data values.

6. The system of claim 1 , the one or more processors being further configured to:

generate, for each of the plurality of destination servers, the corresponding predicted data values using an exponential smoothing technique.

7. The system of claim 1 , the one or more processors being further configured to:

calculate, for each combined time series, a corresponding mean value of the measurement data values and predicted data values in the combined time series,

wherein the first set of requests for information is routed to the first destination server based on a corresponding first combined time series having a smallest mean value among the plurality of combined time series.

8. The system of claim 7 , the one or more processors being further configured to:

calculate, for each combined time series, a corresponding standard deviation of the measurement data values and predicted data values in the combined time series,

wherein, when two or more destination servers correspond to separate combined time series that both have a smallest mean value among the plurality of combined time series, the first set of requests for information is routed to the first destination server the corresponding first combined time series having a smaller standard deviation than a corresponding second combined time series.

9. The system of claim 1 , wherein:

the first set of requests for information is routed to the first destination server and at least a second server included in the plurality of destination servers,

the first destination server and at least the second destination server receive portions of the first set of requests for information based on a percentage allocation,

the percentage allocation allocates:

a first portion of the first set of requests to a first determined destination server with a lowest set of predicted data values, and

a second portion of the first set of requests to a second determined destination server with a highest set of predicted data values, and

the first portion percentage is higher than the second portion.

10. The system of claim 1 , wherein selecting the set of selected destination servers comprises:

comparing, for a specific time interval associated with the second time, the corresponding predicted data values of each destination server of the plurality of destination servers time; and

selecting the set of selected destination servers, wherein the set of selected destination servers have corresponding combined time series that have lowest set predicted data values among the plurality of combined time series.

11. A computer-implemented method for routing requests for information based on predictive data, the computer-implemented method comprising:

receiving, for each of a plurality of destination servers, corresponding measurement data values that indicate an operational state of the destination server at a first time;

generating, by one or more processors based on the corresponding measurement data values for each of the plurality of destination servers, corresponding predicted data values for the destination server that predict the operational state of the destination server at a second time later than the first time;

receiving a first set of requests for information from one or more client computers;

for each destination server included in the plurality of destination servers, combine the corresponding measurement data values and the corresponding predicted data values to generate a combined time series associated with a time interval between the first time and the second time;

for each destination server included in the plurality of destination servers, calculating, based on the combined time series corresponding to the destination server in the plurality of destination servers, a corresponding predicted state change in the operational state of the destination server from the first time to the second time;

selecting, based on a plurality of combined time series that includes the combined time series corresponding to each destination server of the plurality of destination servers, a set of selected destination servers for which the corresponding predicted state change is predicted to improve from the first time to the second time;

routing the first set of requests for information to a first destination server included in the set of selected destination servers;

updating a first combined time series corresponding to the first destination server based on updated measurement data values and updated predicted data values determined in response to the first destination server processing the first set of requests;

receiving a second set of requests for information from the one or more client computers; and

routing the second set of requests for information to a second destination server corresponding to a second combined time series having a lower mean value than the updated first combined time series.

12. The computer-implemented method of claim 11 , further comprising:

receiving first and second measurement data values that respectively indicate first and second state criteria in the operational state of each of the plurality of destination servers at the first time;

generating, based on the first and second measurement data values for each destination server of the plurality of destination servers, corresponding combined measurement data values for each destination server of the plurality of destination servers; and

generating, for each destination server of the plurality of destination servers, the corresponding predicted data values based on the corresponding combined measurement data values for the destination server.

13. The computer-implemented method of claim 12 , wherein the first and second state criteria each includes one selected from the group consisting of:

a traffic load on the corresponding destination server; and

a processing load on the corresponding destination server.

14. The computer-implemented method of claim 12 , further comprising:

normalizing the first and the second measurement data values; and

generating the combined measurement data values using the normalized first and second data values.

15. The computer-implemented method of claim 14 , further comprising:

generating the combined measurement data values as a weighted average of the normalized first and second data values.

16. The computer-implemented method of claim 11 , further comprising:

generating, for each of the plurality of destination servers, the corresponding predicted data values using an exponential smoothing technique,

generating the predicted measurement data values for each of the plurality of destination servers using an exponential smoothing technique.

17. The computer-implemented method of claim 11 , further comprising:

calculating, for each combined time series, a corresponding mean value of the measurement data values and predicted data values in the combined time series,

wherein the first set of requests for information is routed to the first destination server based on a corresponding first combined time series having a smallest mean value among the plurality of combined time series.

18. The computer-implemented method of claim 17 , further comprising:

calculating, for each combined time series, a corresponding standard deviation of the measurement data values and predicted data values in the combined time series,

wherein, when two or more destination servers correspond to separate combined time series that both have a smallest mean value among the plurality of combined time series, the first set of requests for information is routed to the first destination server the corresponding first combined time series having a smaller standard deviation than a corresponding second combined time series.

19. The computer-implemented method of claim 11 , wherein:

the first set of requests for information is routed to the first destination server and at least a second server included in the plurality of destination servers,

the first destination server and at least the second destination server receive portions of the first set of requests for information based on a percentage allocation, wherein

the percentage allocation allocates:

a first portion of the first set of requests to a first determined destination server with a lowest set of predicted data values, and

a second portion of the first set of requests to a second determined destination server with a highest set of predicted data values, and

portion is higher than the second portion.

20. One or more non-transitory computer readable media including instructions for routing requests for information based on predictive data that, when executed by one or more processors, cause the one or more processors to:

receive, for each of a plurality of destination servers, corresponding measurement data values that indicate an operational state of the destination server at a first time;

generate, based on the corresponding measurement data values for each of the plurality of destination servers, corresponding predicted data values for the destination server that predict the operational state of the destination server at a second time later than the first time;

receive a first set of requests for information from one or more client computers;

for each destination server included in a plurality of destination servers, combine the corresponding measurement data values and the corresponding predicted data values to generate a combined time series associated with a time interval between the first time and the second time;

for each destination server included in the plurality of destination servers, calculate, based on the combined time series corresponding to the destination server in the plurality of destination servers, a corresponding predicted state change in the operational state of the destination server from the first time to the second time;

select, based on a plurality of combined time series that includes the combined time series corresponding to each destination server of the plurality of destination servers, a set of selected destination servers for which the corresponding predicted state change is predicted to improve from the first time to the second time;

route the first set of requests for information to a first destination server included in the set of selected destination servers;

update a first combined time series corresponding to the first destination server based on updated measurement data values and updated predicted data values determined in response to the first destination server processing the first set of requests;

receive a second set of requests for information from the one or more client computers; and

route the second set of requests for information to a second destination server corresponding to a second combined time series having a lower mean value than the updated first combined time series.

21. The one or more non-transitory computer readable media of claim 20 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

receive first and second measurement data values that respectively indicate first and second state criteria in the operational state of each of the plurality of destination servers at the first time;

generate, based on the first and second measurement data values for each destination server of the plurality of destination servers, corresponding combined measurement data values for each destination server of the plurality of destination servers; and

generate, for each destination server of the plurality of destination servers, the corresponding predicted data values based on the corresponding combined measurement data values for the destination server.

22. The one or more non-transitory computer readable media of claim 21 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

normalize the first and the second measurement data values; and

generate the combined measurement data values using the normalized first and second data values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2012
From: RODRIGUEZ, JOHN ERNEST
To: VERISIGN, INC.
Reel/Frame 028773/0315 →
Continuity (1)
Related Publication 20140047104A1 · Feb 13, 2014
Cited By (1)
US 12,335,107