IP Library Granted Patent US 11,888,756
Granted Patent B2
US 11,888,756 · App. 17/342,391 · Granted Jan 30, 2024

Software load balancer to maximize utilization

Inventors: Rema Hariharan (Austin, TX); Sathyamangalam Ramaswamy Venkatramanan (Cupertino, CA); Ashok Srinivasa Murthy (San Jose, CA); Rami El-Charif (San Jose, CA)
Assignee: PayPal, Inc.
H04L47/726H04L41/5019H04L67/1012H04L67/1031
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,888,756
App. No.
17/342,391
Granted
Jan 30, 2024
Kind
B2
Abstract

A load balancer receives a sequence of requests for computing service and distributes the requests for computing service to a computing node in an ordered list of computing nodes until the computing node reaches its maximum allowable compute capability. Responsive to an indication that the computing node has reached its maximum allowable compute capability, the load balancer distributes subsequent requests for computing service to another computing node in the ordered list. If the computing node is the last computing node in the ordered list, the load balancer distributes a subsequent request for computing service to a computing node other than one of the computing nodes in the ordered list of computing nodes. If the computing node is not the last computing node in the ordered list, the load balancer distributes a subsequent request for computing service to another computing node in the ordered list of computing nodes.

Claims (47)

1. A system comprising:

a hardware processor; and

a non-transitory computer-readable medium having stored thereon instructions that are executable to cause the system to perform operations comprising:

assigning a first sub-group of a plurality of requests for computing services to a first computing node in a plurality of computing nodes, wherein a second computing node in the plurality of computing nodes is inactive when the first sub-group of the plurality of requests is assigned to the first computing node based on first feedback received from the first computing node indicating that the first computing node has not reached a work assignment termination condition;

subsequent to the assigning the first sub-group of the plurality of requests for computing services to the first computing node, obtaining, from the first computing node, second feedback related to a capacity of the first computing node to process requests according to a set of predetermined servicing criteria;

determining that the first computing node has reached the work assignment termination condition based on the second feedback;

in response to determining that the first computing node has reached the work assignment termination condition, activating the second computing node; and

assigning a second sub-group of the plurality of requests to the second computing node in the plurality of computing nodes.

2. The system of claim 1 , wherein the work assignment termination condition indicates an inability to process additional requests for computing services without exceeding a service level agreement (SLA) specified time.

3. The system of claim 1 , wherein the work assignment termination condition indicates an inability to accept additional requests for computing services.

4. The system of claim 1 , wherein the operations further comprise:

deactivating a particular computing node in the plurality of computing nodes in response to detecting a decline in an incoming volume of requests for computing services.

5. The system of claim 4 , wherein the operations further comprise:

selecting, from the plurality of computing nodes, the particular computing node to be deactivated based on the particular computing node having been most recently assigned a request for computing services.

6. The system of claim 1 , wherein each of the plurality of requests for computing services comprises a request to perform an electronic transaction for an electronic transaction service.

7. The system of claim 6 , wherein the electronic transaction service is an electronic payment transaction service.

8. The system of claim 1 , wherein the plurality of computing nodes is part of a first group of computing nodes assigned to process a first type of computing service requests, and wherein the operations further comprise assigning one or more computing nodes in the plurality of computing nodes to a second group of computing nodes assigned to process a second type of computing service requests in response to an indication of a decrease in traffic volume for the first type of computing service requests.

9. A non-transitory computer-readable medium having stored thereon instructions executable by a computer system to cause the computer system to perform operations comprising:

assigning a first sub-group of a plurality of requests for computing service to a first computing node in a plurality of computing nodes, wherein a second computing node in the plurality of computing nodes is idling when the first sub-group of the plurality of requests is assigned to the first computing node based on first feedback received from the first computing node indicating that the first computing node has not reached a work assignment termination condition;

subsequent to the assigning the first sub-group of the plurality of requests for computing services to the first computing node, obtaining, from the first computing node, second feedback related to a capacity of the first computing node to process requests according to a set of predetermined servicing criteria;

determining that the first computing node has reached the work assignment termination condition based on the second feedback, wherein the work assignment termination condition indicates at least one of (i) an inability to process additional requests for computing service according to a service level agreement (SLA), or (ii) an inability to accept the additional requests for computing service;

in response to determining that the first computing node has reached the work assignment termination condition, activating the second computing node; and

assigning a second sub-group of the plurality of requests to the second computing node.

10. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

determining that the plurality of computing nodes has reached the work assignment termination condition;

determining a degraded SLA based on a degradation of the SLA, wherein the degraded SLA provides a less restrictive requirement than the SLA; and

assigning a second plurality of requests to ones of the plurality of computing nodes according to the degraded SLA.

11. The non-transitory computer-readable medium of claim 9 , wherein the plurality of computing nodes comprises one or more virtual machines.

12. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

selecting, from the plurality of computing nodes, the first computing node for processing the first sub-group of the plurality of requests based on a random selection.

13. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

determining that the plurality of computing nodes has reached the work assignment termination condition; and

in response to determining that the plurality of computing nodes has reached the work assignment termination condition, adding one or more computing nodes to the plurality of computing nodes.

14. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

causing a particular computing node in the plurality of computing nodes to idle in response to detecting a decline in an incoming volume of requests for computing service.

15. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise:

selecting, from the plurality of computing nodes, the particular computing node for idling based on the particular computing node having been most recently assigned a request for computing service.

16. The non-transitory computer-readable medium of claim 9 , wherein each of the plurality of requests for computing service comprises a request to perform an electronic transaction for an electronic transaction service.

17. A method, comprising:

assigning a first sub-group of a plurality of requests for computing service to a first computing node in a plurality of computing nodes, wherein a second computing node in the plurality of computing nodes is inactive when the first sub-group of the plurality of requests is assigned to the first computing node based on first feedback received from the first computing node indicating that the first computing node has not reached a work assignment termination condition;

obtaining, from the first computing node, second feedback related to a capacity of the first computing node to process requests according to a set of predetermined servicing criteria;

determining that the first computing node has reached the work assignment termination condition based on the second feedback;

in response to determining that the first computing node has reached the work assignment termination condition, activating the second computing node; and

assigning a second sub-group of the plurality of requests to the second computing node.

18. The method of claim 17 , wherein the work assignment termination condition indicates an inability to process additional requests for computing service without exceeding a service level agreement (SLA) specified time.

19. The method of claim 17 , wherein the work assignment termination condition indicates an insufficient number of available data connections.

20. The method of claim 17 , further comprising causing a particular node in the plurality of computing nodes to idle in response to detecting a decline in an incoming volume of requests for computing service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2021
From: HARIHARAN, REMA; VENKATRAMANAN, SATHYAMANGALAM RAMASWAMY; MURTHY, ASHOK SRINIVASA; EL-CHARIF, RAMI
To: PAYPAL, INC.
Reel/Frame 057417/0168 →
Continuity (5)
Continuation 16513038 · Jul 16, 2019
Continuation 14939610 · Nov 12, 2015
Continuation In Part 14586814 · Dec 30, 2014
Provisional Application 61984603 · Apr 25, 2014
Related Publication 20210385171A1 · Dec 9, 2021