IP Library Granted Patent US 10,542,078
Granted Patent B1
US 10,542,078 · App. 15/621,048 · Granted Jan 21, 2020

System and method of load balancing traffic bursts in non-real time networks

Inventors: Daniel Farrugia (Sliema, MT); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Costa Del Sol, SG)
Assignee: Parallels International GmbH
H04L67/1008H04L47/125H04L67/101H04L45/22H04L47/10
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,542,078
App. No.
15/621,048
Granted
Jan 21, 2020
Kind
B1
Abstract

Disclosed are systems and methods for balancing load of computing resources among a plurality of servers by a plurality of load balancers. Clients communicate with a front-end device which forwards requests to the load balancers in a cyclical fashion. The load balancers estimate the impact of the received requests and can forward client requests to an estimated least loaded backend server. The backend servers process client requests and periodically report load statistics to the load balancers.

Claims (58)

1. A method for balancing loads of computing resources among a plurality of servers by a plurality of load balancers, wherein the method comprises:

receiving, by a first load balancer of the plurality of load balancers, from each of the plurality of servers, resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;

receiving, by the first load balancer, a plurality of requests for the services executing in the servers, wherein the plurality of requests are received from a front-end device that selects a load balancer from among the plurality of load balancers to which each of the plurality of requests is to be directed according to a cyclical pattern;

determining, by the first load balancer, a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;

determining, by the first load balancer, an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests; and

for each of the plurality of requests, by the first load balancer, selecting a server of the plurality of servers to fulfill the request and forwarding the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.

2. The method of claim 1 , wherein determining the total number of requests received by the plurality of load balancers for the services executing in the servers further comprises:

determining, by the first load balancer, an estimated total number of requests for each service type executing in the plurality of servers based on a ratio of service types at the first load balancer and on the determined total number of requests received by the plurality of load balancers; and

wherein determining the estimated increased load of each of the plurality of servers further comprises:

determining, by the first load balancer, the estimated increased load of each of the plurality of servers based on the received resource usage statistics and on the determined estimated total number of requests for each service type.

3. The method of claim 1 , wherein, for each of the plurality of servers, the determination of the estimated increased load of the server further comprises:

for each service type, calculating an estimated increased load executing in the server by multiplying the estimated total number of requests for the service type and an average share of resources consumed by the service type; and

calculating the estimated increased load of the server as a summation of the estimated increased loads calculated for each service type.

4. The method of claim 1 , wherein the received resource usage statistics comprises resource usage statistics for a first service and resource usage statistics for a second service.

5. The method of claim 1 , wherein the estimated increased load of each of the plurality of servers is determined prior to receiving second resource usage statistics at a next update interval.

6. The method of claim 1 , wherein the determining the total number of requests received by the plurality of load balancers for the services executing in the servers comprises: adding a number of requests received by the first load balancer to a number of requests estimated as being received by all other load balancers of the plurality of load balancers based on a share ratio of the cyclical pattern.

7. The method of claim 1 , wherein the selecting the server of the plurality of servers to fulfill the request comprises:

selecting the server from among the plurality of servers having a least amount of the estimated increased load.

8. The method of claim 1 , wherein determining the total number of requests received by the plurality of load balancers is performed without coordinating with other load balancers of the plurality of load balancers.

9. The method of claim 1 , wherein the cyclical pattern comprises a round robin algorithm that forwards requests to the plurality of load balancers based on a respective share ratio.

10. A system for balancing loads of computing resources among a plurality of servers, wherein the system comprises:

a plurality of load balancers including a first load balancer; and

a front-end device configured to receive a plurality of requests from one or more clients, and forward the plurality of requests to the plurality of load balancers according to a cyclical pattern,

wherein each of the plurality of load balancers includes a processor configured to:

from each of the plurality of servers, receive resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;

determine a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;

determine an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests; and

for each of the plurality of requests, select a server of the plurality of servers to fulfill the request and forward the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.

11. The system of claim 10 , wherein the processor configured to determine the total number of requests received by the plurality of load balancers for the services executing in the servers comprises the processor configured to:

determine an estimated total number of requests for each service type executing in the plurality of servers based on a ratio of service types at the first load balancer and on the determined total number of requests received by the plurality of load balancers; and

wherein the processor configured to determine the estimated increased load of each of the plurality of servers comprises the processor further configured to:

determine the estimated increased load of each of the plurality of servers based on the received resource usage statistics and on the determined estimated total number of requests for each service type.

12. The system of claim 10 , wherein, for each of the plurality of servers, the processor configured to determine the estimated increased load comprises the processor configured to:

for each service type, calculate an estimated increased load executing in the server by multiplying the estimated total number of requests for the service type and an average share of resources consumed by the service type; and

calculate the estimated increased load of the server as a summation of the estimated increased loads calculated for each service type.

13. The system of claim 10 , wherein the received resource usage statistics comprises resource usage statistics for a first service and resource usage statistics for a second service.

14. The system of claim 10 , wherein the estimated increased load of each of the plurality of servers is determined prior to receiving second resource usage statistics at a next update interval.

15. The system of claim 10 , wherein the processor is configured to determine the total number of requests received by the plurality of load balancers for the services executing in the servers by adding a number of requests received by the first load balancer to a number of requests estimated as being received by all other load balancers of the plurality of load balancers based on a share ratio of the cyclical pattern.

16. The system of claim 10 , wherein the processor configured to select the server of the plurality of servers to fulfill the request comprises the processor configured to:

select the server from among the plurality of servers having a least amount of the estimated increased load.

17. The system of claim 10 , wherein the processor is configured to determine the total number of requests received by the plurality of load balancers without coordinating with other load balancers of the plurality of load balancers.

18. The system of claim 10 , wherein the cyclical pattern comprises a round robin algorithm that forwards requests to the plurality of load balancers based on a respective share ratio.

19. A non-transitory computer readable medium comprising computer executable instructions for balancing loads of computing resources among a plurality of servers by a plurality of load balancers, including instructions for:

receiving, by a first load balancer of the plurality of load balancers, from each of the plurality of servers, resource usage statistics associated with services executing in the server, wherein the resource usage statistics received from the server indicate a current load of the server;

receiving, by the first load balancer, a plurality of requests for the services executing in the servers, wherein the plurality of requests are received from a front-end device that selects a load balancer from among the plurality of load balancers to which each of the plurality of requests is to be directed according to a cyclical pattern;

determining, by the first load balancer, a total number of requests received by the plurality of load balancers for the services executing in the servers, the total number being determined based on the cyclical pattern;

determining, by the first load balancer, an estimated increased load of each of the plurality of servers based on the received resource usage statistics and the total number of requests; and

for each of the plurality of requests, by the first load balancer, selecting a server of the plurality of servers to fulfill the request and forwarding the request to the selected server, the selection being based on respective estimates of increased loads of the plurality of servers.

20. The non-transitory computer readable medium of claim 19 , wherein the instructions for determining the total number of requests received by the plurality of load balancers for the services executing in the servers comprises instructions for:

determining, by the first load balancer, an estimated total number of requests for each service type executing in the plurality of servers based on a ratio of service types at the first load balancer and on the determined total number of requests received by the plurality of load balancers; and

wherein the instructions for determining the estimated increased load of each of the plurality of servers further comprises instructions for:

determining, by the first load balancer, the estimated increased load of each of the plurality of servers based on the received resource usage statistics and on the determined estimated total number of requests for each service type.

21. The non-transitory computer readable medium of claim 19 , wherein the instructions for determining, for each of the plurality of servers, the estimated increased load comprises instructions for:

for each service type, calculating an estimated increased load executing in the server by multiplying the estimated total number of requests for the service type and an average share of resources consumed by the service type; and

calculating the estimated increased load of the server as a summation of by adding the estimated increased loads calculated for each service type.

22. The non-transitory computer readable medium of claim 19 , wherein the instructions for the selecting the server from among the plurality of servers to fulfill the request comprises instructions for:

selecting the server from among the plurality of servers having a least amount of the estimated increased load.

23. The non-transitory computer readable medium of claim 19 , wherein the cyclical pattern comprises a round robin algorithm that forwards requests to the plurality of load balancers based on a respective share ratio.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2017
From: FARRUGIA, DANIEL; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 042689/0432 →
Cited By (1)
US 12,273,413