IP Library Granted Patent US 11,075,986
Granted Patent B2
US 11,075,986 · App. 15/396,512 · Granted Jul 27, 2021

Weighted load balancing using scaled parallel hashing

Inventors: Abdul Kabbani (Los Gatos, CA); Amin Vahdat (Los Altos, CA)
Assignee: Google LLC
H04L67/1023H04L45/24H04L45/7453H04L47/125H04L47/623
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,075,986
App. No.
15/396,512
Granted
Jul 27, 2021
Kind
B2
Abstract

A method for weighted data traffic routing can include receiving a data packet at data switch, where the data switch includes a plurality of egress ports. The method can also include, for each of the egress ports, generating an independent hash value based on one or more fields of the data packet and generating a weighted hash value by scaling the hash value using a scaling factor. The scaling factor can be based on at least two traffic routing weights of a plurality of respective traffic routing weights associated with the plurality of egress ports. The method can further include selecting an egress port of the plurality of egress ports based on the weighted hash value for each of the egress ports and transmitting the data packet using the selected egress port.

Claims (28)

1. A method comprising:

receiving, at a data switch, a data packet, the data switch including a plurality of egress ports;

for a given received data packet:

for each of the egress ports:

generating, by the data switch, a hash value based on one or more fields of the given received data packet using a hash function assigned to the egress port, wherein the hash function assigned to each egress port is independent and different from the hash functions assigned to each of the other egress ports;

selecting, for the given received data packet, an egress port of the plurality of egress ports based on the respective hash values for each of the egress ports generated for the given received data packet; and

transmitting, by the data switch, the given received data packet using the selected egress port.

2. The method of claim 1 , wherein the one or more fields of the given received data packet include one or more fields of a header of the given received data packet, the one or more fields of the header of the given received data packet having fixed values for each received data packet of a data flow associated with the given received data packet.

3. The method of claim 1 , wherein generating a hash value includes generating a weighted hash value based on a plurality of respective traffic routing weights assigned to the plurality of egress ports.

4. The method of claim 3 , wherein generating a weighted hash value for a given egress port of the plurality of egress ports is based on a ratio of a probability of the given egress port being selected in a joint probability distribution for the plurality of egress ports with a probability of an egress port with a lowest routing weight of the respective traffic routing weights being selected in the joint probability distribution, the probability of the given egress port being selected in the joint probability distribution being proportional with a routing weight assigned to the given egress port.

5. The method of claim 3 , wherein the plurality of routing weights are normalized such that a smallest routing weight of the plurality of routing weights has a normalized value of 1.

6. The method of claim 3 , wherein generating, for the given received data packet, the hash value for each of egress ports includes normalizing a plurality of respective hash values for the plurality of egress ports to respective values in a range of 0 to 1.

7. The method of claim 1 , wherein selecting, for the given received data packet, the egress port of the plurality of egress ports includes selecting an egress port of the plurality of egress ports having a highest respective hash value.

8. A data switch including a plurality of egress ports, the data switch comprising:

at least one memory that is configured to store instructions; and

at least one processor that is operably coupled to the at least one memory and that is configured to process the instructions to cause the data switch to:

receive a data packet;

for a given received data packet:

for each of the egress ports:

generate a hash value based on one or more fields of the given received data packet using a hash function assigned to the egress port, wherein the hash function assigned to each egress port is independent and different from the hash functions assigned to each of the other egress ports;

select, for the given received data packet, an egress port of the plurality of egress ports based on the respective hash values for each of the egress ports generated for the given received data packet; and

transmit the given received data packet using the selected egress port.

9. The data switch of claim 8 , wherein the one or more fields of the given received data packet include one or more fields of a header of the given received data packet, the one or more fields of the header of the given received data packet having fixed values for each data packet of a data flow associated with the given received data packet.

10. The data switch of claim 8 , wherein the generated hash value includes a weighted hash value generated based on a plurality of respective traffic routing weights assigned to the plurality of egress ports.

11. The data switch of claim 10 , wherein a weighted hash value for a given egress port of the plurality of egress ports is based on a ratio of a probability of the given egress port being selected in a joint probability distribution for the plurality of egress ports with a probability of an egress port with a lowest routing weight of the respective traffic routing weights being selected in the joint probability distribution, the probability of the given egress port being selected in the joint probability distribution being proportional with a routing weight assigned to the given egress port.

12. The method of claim 10 , wherein the plurality of routing weights are normalized such that a smallest routing weight of the plurality of routing weights has a normalized value of 1.

13. The data switch of claim 10 , wherein generating, for the given received data packet, the hash value for each of egress ports includes normalizing a plurality of respective hash values for the plurality of egress ports to respective values in a range of 0 to 1.

14. The data switch of claim 8 , wherein selecting, for the given received data packet, the egress port of the plurality of egress ports includes selecting an egress port of the plurality of egress ports having a highest respective hash value.

Assignments (2)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: KABBANI, ABDUL; VAHDAT, AMIN
To: GOOGLE INC.
Reel/Frame 040954/0806 →