IP Library Granted Patent US 11,477,273
Granted Patent B2
US 11,477,273 · App. 17/018,468 · Granted Oct 18, 2022

Feedback control based load balancing for containerized workloads

Inventor: Stephen McQuaid (Indianapolis, IN)
Assignee: salesforce.com, inc.
H04L67/1008H04L43/0864H04L43/0876H04L67/1027H04L67/142H04L47/125H04L47/6225H04L47/6275H04L47/828H04L67/01
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 11,477,273
App. No.
17/018,468
Granted
Oct 18, 2022
Kind
B2
Abstract

System and methods are described for performing load balancing by continually collecting real-time metrics values from a plurality of endpoints in a cloud computing system, the real-time metrics values representing current performance measurements of processing by the endpoints, and using the collected real-time metrics values by a controller to continually determine a current weight value for each endpoint, the current weight value representing a probability that the endpoint will be selected to process a user request. The method includes receiving the user request for the cloud computing system to perform requested processing; selecting an endpoint of the cloud computing system to process the user request based at least in part on the current weight values of the endpoints; and sending the user request to the selected endpoint.

Claims (60)

1. A computer-implemented method comprising:

continually collecting real-time metrics values from a plurality of endpoints in a cloud computing system, the real-time metrics values representing current performance measurements of processing by the endpoints;

using the collected real-time metrics values to continually determine a current weight value for each endpoint, the current weight value representing a probability that the endpoint will be selected to process a user request;

receiving, from a first user, a first user request for the cloud computing system to perform requested processing;

determining that the first user request is for a new first user session in the cloud computing system;

selecting an endpoint of the cloud computing system to process the first user request based, at least in parts on the current weight values of the endpoints;

sending the first user request to the selected endpoint;

updating an endpoint table, without impacting existing processing within the cloud computing system, to indicate that the first user request is sent to the selected endpoint;

receiving, from the first user, a second user request for the cloud computing system to perform requested processing;

determining that the second user request is for the first user session;

checking, based on the determining that the second user request is for the first user session, the endpoint table to identify that the first user request of the first user session was sent to the selected endpoint;

selecting the selected endpoint for the second user request based on the endpoint table identifying that the first user request of the first user session was sent to the selected endpoint; and

sending the second user request to the selected endpoint.

2. The computer-implemented method of claim 1 , wherein each of the plurality of endpoints is a workload running on a container in an application server of the cloud computing system.

3. The computer-implemented method of claim 1 , wherein the current performance measurements include network latency of processing user requests by an endpoint.

4. The computer-implemented method of claim 1 , wherein the current weight values of the endpoints describe priorities for load balancing of assigning user requests to endpoints, and a probability of an endpoint being selected is directly proportional to the current weight value of the endpoint.

5. The computer-implemented method of claim 1 , wherein the endpoint is selected using a weighted random selection process.

6. The computer-implemented method of claim 1 , wherein the endpoint is selected using a weight round robin selection process.

7. The computer-implemented method of claim 1 , further comprising:

storing a state of a session for received user requests in the endpoint table.

8. The computer-implemented method of claim 1 , further comprising:

storing the current weight values and a state of a session for received user requests in a hash table.

9. The computer-implemented method of claim 1 , wherein a proportional-integral-derivative (PID) controller uses the collected real-time metrics values by to continually determine a current weight value for each endpoint.

10. A tangible, non-transitory computer-readable storage medium having instructions stored thereon which, when executed by a processing device, cause the processing device to:

continually collect real-time metrics values from a plurality of endpoints in a cloud computing system, the real-time metrics values representing current performance measurements of processing by the endpoints;

use the collected real-time metrics values to continually determine a current weight value for each endpoint, the current weight value representing a probability that the endpoint will be selected to process a user request;

receive, from a first user, a first user request for the cloud computing system to perform requested processing;

determine that the first user request is for a new first user session in the cloud computing system;

select an endpoint of the cloud computing system to process the first user request based, at least in part, on the current weight values of the endpoints;

send the first user request to the selected endpoint;

update an endpoint table, without impacting existing processing within the cloud computing system, to indicate that the first user request is sent to the selected endpoint;

receive, from the first user, a second user request for the cloud computing system to perform requested processing;

determine that the second user request is for the first user session;

check, based on the determining that the second user request is for the first user session, the endpoint table to identify that the first user request of the first user session was sent to the selected endpoint;

select the selected endpoint for the second user request based on the endpoint table identifying that the first user request of the first user session was sent to the selected endpoint; and

send the second user request to the selected endpoint.

11. The tangible, non-transitory computer-readable storage medium of claim 10 , wherein each of the plurality of endpoints is a workload running on a container in an application server of the cloud computing system.

12. The tangible, non-transitory computer-readable storage medium of claim 10 , wherein the current performance measurements include network latency of processing user requests by an endpoint.

13. The tangible, non-transitory computer-readable storage medium of claim 10 , wherein the current weight values of the endpoints describe priorities for load balancing of assigning user requests to endpoints, and a probability of an endpoint being selected is directly proportional to the current weight value of the endpoint.

14. A system comprising:

a metrics collector configured to:

continually collect real-time metrics values from a plurality of endpoints in a cloud computing system, the real-time metrics values representing current performance measurements of processing by the endpoints;

a controller configured to:

use the collected real-time metrics values to continually determine a current weight value for each endpoint, the current weight value representing a probability that the endpoint will be selected to process a user request; and

a load balancer configured to:

receive, from a first user, a first user request for the cloud computing system to perform requested processing;

select an endpoint of the cloud computing system to process the first user request based, at least in part, on the current weight values of the endpoints;

send the first user request to the selected endpoint;

update an endpoint table, without impacting existing processing within the cloud computing system, to indicate that the first user request is sent to the selected endpoint;

receive, from the first user, a second user request for the cloud computing system to perform requested processing;

determine that the second user request is for the first user session;

check, based on the determining that the second user request is for the first user session, the endpoint table to identify that the first user request of the first user session was sent to the selected endpoint;

select the selected endpoint for the second user request based on the endpoint table identifying that the first user request of the first user session was sent to the selected endpoint; and

send the second user request to the selected endpoint.

15. The system of claim 14 , wherein each of the plurality of endpoints is a workload running on a container in an application server of the cloud computing system.

16. The system of claim 14 , wherein the current performance measurements include network latency of processing user requests by an endpoint.

17. The system of claim 14 , wherein the current weight values of the endpoints describe priorities for load balancing of assigning user requests to endpoints, and a probability of an endpoint being selected is directly proportional to the current weight value of the endpoint.

18. The system of claim 14 , wherein the controller comprises a proportional-integral-derivative (PID) controller.

19. The system of claim 14 , wherein the endpoint is selected using a weighted random selection process.

20. The system of claim 14 , wherein the endpoint is selected using a weight round robin selection process.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2020
From: MCQUAID, STEPHEN
To: SALESFORCE.COM, INC.
Reel/Frame 053776/0407 →