Rotating Hash Network Load Balancing for Packet Order Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network traffic load balancing techniques, such as random distribution, round-robin load balancing, and work-conserving schedulers, often result in uneven workload distribution and out-of-order processing or delivery of network packets, particularly for TCP flows, due to assumptions about equal hardware capabilities and frequent state information exchange between processing elements.

Innovation Solution

A dynamically reconfigurable hash operation is used to distribute network packets more evenly by changing the hash function or hash table entries based on predetermined conditions, such as packet counts or time intervals, ensuring that packets from the same flow are processed by the same hardware element and reducing out-of-order delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If random distribution or round-robin load balancing is used, then workload distribution may be improved, but packet order integrity deteriorates due to out-of-order processing

Engineering Contradiction:
Improveworkload distributionVSAvoidpacket order integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent changes the hash function parameters dynamically by rotating hash table entries at predetermined intervals. This allows the system to maintain consistent hash mappings for packet ordering while periodically redistributing workload across different processing elements, resolving the contradiction between workload distribution and packet order integrity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system transitions from static hash table mappings to dynamic mappings that rotate periodically. This dynamic approach allows the load balancer to adaptively redistribute traffic while maintaining stability within each rotation period, achieving both even workload distribution and reliable packet ordering.

Inventive Principle:
Principle #15Dynamics

2Productivity

If work-conserving schedulers are used, then resource utilization may be improved, but packet processing order deteriorates due to out-of-order delivery

Engineering Contradiction:
Improveresource utilizationVSAvoidpacket processing order
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By rotating hash table entries periodically, the system changes the mapping parameters to redistribute packets across different processing elements over time. Within each rotation period, packets from the same flow are consistently directed to the same processing element, ensuring in-order processing while improving overall resource utilization across rotations.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If frequent state information exchange between processing elements is implemented, then load balancing accuracy may be improved, but system complexity deteriorates

Engineering Contradiction:
Improveload balancing accuracyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the state information exchange requirement by using purely local hash table rotation at each load balancer. This eliminates the need for complex inter-processing-element communication while maintaining accurate load balancing through periodic reconfiguration of hash mappings.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10616116B1Network traffic load balancing using rotating hash
Publication Date: 2020.04.07 AMAZON TECH INC
  • US10616116B1 patent drawing
  • US10616116B1 patent drawing
  • US10616116B1 patent drawing

AI summary

Disclosed herein are techniques for classifying input network packets evenly into a plurality of classes. An apparatus includes an input port configured to receive a plurality of network packets. The apparatus also includes processing logic configured to receive the plurality of network packets from the input port and classify each packet of the plurality of network packets. For each packet, whether a condition is met is determined, a most recently used hash operation is selected when the condition is not met or a new hash operation is selected when the condition is met; and the selected hash operation is performed on the packet using at least a portion of the packet as an input value to classify the packet. The most recently used hash operation and the new hash operation are configured to classify packets having the same input value into different classes.