IP Library Granted Patent US 12,160,465
Granted Patent B2
US 12,160,465 · App. 18/227,304 · Granted Dec 3, 2024

Capacity-aware layer-4 load balancer

Inventors: Sachin Pandey (Prayagraj, IN); Rohan Gandhi (Pune, IN); Sreeram Iyer (Bangalore, IN); Santosh Pallagatti Kotrabasappa (Bangalore, IN); Sairam Veeraswamy (Coimbatore, IN)
Assignee: VMware LLC
H04L67/1008H04L67/101
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 12,160,465
App. No.
18/227,304
Granted
Dec 3, 2024
Kind
B2
Abstract

Some embodiments provide a method of implementing capacity-aware load balancing across a set of data compute nodes (DCNs) by reducing latency for the set of DCNs. From the set of DCNs, the method identifies (1) a first subset of DCNs including DCNs that have a latency that is higher than an average latency computed for the set of DCNs and (2) a second subset of DCNs including DCNs that have a latency that is lower than the average latency computed for the set of DCNs. For each DCN in the first subset of DCNs, the method assigns to the DCN a weight value that corresponds to a target latency computed for the set of DCNs. Based on the assigned weight values for the first subset of DCNs, the method computes an excess weight value to be redistributed across the second subset of DCNs. The method redistributes the computed excess weight value across the second subset of DCNs.

Claims (28)

1. A method of performing capacity-aware load balancing across a set of compute nodes, the method comprising:

from the set of compute nodes, identifying (i) a first subset of compute nodes comprising compute nodes that have a latency that is higher than an average latency computed for the set of compute nodes and (ii) a second subset of compute nodes comprising compute nodes that have a latency that is lower than the average latency computed for the set of compute nodes;

for each particular compute node in the first subset of compute nodes, assigning, to the particular compute node, a reduced weight value based on a target latency computed for the set of compute nodes, and reducing data traffic forwarded by a set of load balancers to the first subset of compute nodes;

increasing one or more weight values assigned to one or more of the compute nodes in the second subset of compute nodes and increasing data traffic forwarded by the set of load balancers to the second subset of compute nodes;

computing, based on the reduced weight values assigned to the compute nodes in the first subset of compute nodes, an excess weight value to be redistributed across the second subset of compute nodes, wherein said increasing comprises redistributing the computed excess weight value across the second subset of compute nodes; and

distributing the reduced and increased weight values to the set of load balancers.

2. The method of claim 1 , wherein the average latency computed for the set of compute nodes is computed by (i) computing, for each compute node in the set of compute nodes, a rolling average latency for the compute node based on a set of ten most recent recorded latencies for the compute node at a current weight value assigned to the compute node, and (ii) using the computed rolling average latencies for each compute node in the set of compute nodes to compute the average latency for the set of compute nodes.

3. The method of claim 1 , wherein the target latency is equal to the average latency computed for the set of compute nodes.

4. The method of claim 1 , wherein the excess weight value comprises a sum of excess weight values computed for each particular compute node in the first subset of compute nodes by subtracting the reduce weight value of the particular compute node from the weight value that was assigned to the particular compute node when the particular compute node had the latency higher than the average latency.

5. The method of claim 1 , wherein the weight value assigned to each compute node in the set of compute nodes corresponds to a percentage of traffic that is directed toward the compute node.

6. The method of claim 5 , wherein the weight value assigned to each compute node in the set of compute nodes further corresponds to a computing capacity of the compute node, wherein compute nodes having higher computing capacities are assigned higher weight values and compute nodes having lower computing capacities are assigned lower weight values.

7. The method of claim 1 , wherein each compute node in the set of compute nodes comprises one of a virtual machine (VM), a container, and a physical computer.

8. The method of claim 1 , wherein each compute node in the set of compute nodes is assigned a direct internet protocol (DIP) address, wherein the set of load balancers receives packets addressed to a virtual internet protocol (VIP) address associated with the set of compute nodes, and performs a load balancing operation to load balance [the] network traffic across the DIP addresses of the set of compute nodes based on the weight values assigned to the set of compute nodes.

9. The method of claim 8 , wherein the load balancing operation is a weighted round-robin operation.

10. A non-transitory machine readable medium storing a program for execution by a set of processing units to perform capacity-aware load balancing across a set of compute nodes, the program comprising sets of instructions for:

from the set of compute nodes, identifying (i) a first subset of compute nodes comprising compute nodes that have a latency that is higher than an average latency computed for the set of compute nodes and (ii) a second subset of compute nodes comprising compute nodes that have a latency that is lower than the average latency computed for the set of compute nodes;

for each particular compute node in the first subset of compute nodes, assigning, to the particular compute node, a reduced weight value based on a target latency computed for the set of compute nodes, and reducing data traffic forwarded by a set of load balancers to the first subset of compute nodes;

increasing one or more weight values assigned to one or more of the compute nodes in the second subset of compute nodes and increasing data traffic forwarded by the set of load balancers to the second subset of compute nodes;

computing, based on the reduced weight values assigned to the compute nodes in the first subset of compute nodes, an excess weight value to be redistributed across the second subset of compute nodes, wherein said increasing comprises redistributing the computed excess weight value across the second subset of compute nodes; and

distributing the reduced and increased weight values to the set of load balancers.

11. The non-transitory machine readable medium of claim 10 , wherein the average latency computed for the set of compute nodes is computed by (i) computing, for each compute node in the set of compute nodes, a rolling average latency for the compute node based on a set of ten most recent recorded latencies for the compute node at a current weight value assigned to the compute node, and (ii) using the computed rolling average latencies for each compute node in the set of compute nodes to compute the average latency for the set of compute nodes.

12. The non-transitory machine readable medium of claim 10 , wherein the target latency is equal to the average latency computed for the set of compute nodes.

13. The non-transitory machine readable medium of claim 10 , wherein the excess weight value comprises a sum of excess weight values computed for each particular compute node in the first subset of compute nodes by subtracting the reduce weight value of the particular compute node from the weight value that was assigned to the particular compute node when the particular compute node had the latency higher than the average latency.

14. The non-transitory machine readable medium of claim 10 , wherein the weight value assigned to each compute node in the set of compute nodes corresponds to a percentage of traffic that is directed toward the compute node.

15. The non-transitory machine readable medium of claim 14 , wherein the weight value assigned to each compute node in the set of compute nodes further corresponds to a computing capacity of the compute node, wherein compute nodes having higher computing capacities are assigned higher weight values and compute nodes having lower computing capacities are assigned lower weight values.

16. The non-transitory machine readable medium of claim 10 , wherein each compute node in the set of compute nodes comprises one of a virtual machine (VM), a container, and a physical computer.

17. The non-transitory machine readable medium of claim 10 , wherein each compute node in the set of compute nodes is assigned a direct internet protocol (DIP) address, wherein the set of load balancers receives packets addressed to a virtual internet protocol (VIP) address associated with the set of compute nodes, and performs a load balancing operation to load balance network traffic across the DIP addresses of the set of compute nodes based on the weight values assigned to the set of compute nodes.

18. The non-transitory machine readable medium of claim 17 , wherein the load balancing operation is a weighted round-robin operation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2024
From: PANDEY, SACHIN; GANDHI, ROHAN; IYER, SREERAM; KOTRABASAPPA, SANTOSH PALLAGATTI; VEERASWAMY, SAIRAM
To: VMWARE, INC.
Reel/Frame 069060/0851 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
Continuity (2)
Continuation 17746830 · May 17, 2022
Related Publication 20230403319A1 · Dec 14, 2023