Hash Ring Prepopulation for Packet Flow Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices face inefficiencies in load balancing due to frequent remapping of key values to buckets in hash tables, leading to high consumption of computing resources such as processor cycles and memory bandwidth, especially in dynamic network environments where routing updates occur frequently.

Innovation Solution

Implementing pre-population of empty buckets in a hash ring with adjacent output values, allowing for direct retrieval of the output value without traversing additional buckets, thereby reducing traversal operations and resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If lazy output value population and depopulation is performed in hash tables for load balancing, then the system can handle dynamic routing updates, but traversal operations on empty buckets increase processor cycle consumption and reduce computing performance

Engineering Contradiction:
Improvehandling of dynamic routing updatesVSAvoidcomputing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent pre-populates empty buckets in the hash ring with output values before they are needed during packet forwarding. This preliminary action ensures that when packets arrive and hash buckets need to be accessed, the buckets are already populated with valid output values, eliminating the need for traversal operations and reducing processor cycle consumption during high-speed packet forwarding.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If frequent remapping of key values to buckets is performed, then load balancing can adapt to changing network conditions, but memory bandwidth consumption and processor cycle usage increase

Engineering Contradiction:
Improveload balancing adaptabilityVSAvoidprocessor cycle consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system performs remapping of key values to buckets in advance during control plane operations, populating the hash ring with pre-computed mappings. This preliminary remapping allows the data plane to simply look up pre-determined bucket assignments without performing computationally intensive remapping operations during packet forwarding, thereby reducing processor cycle consumption while maintaining load balancing adaptability.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If traversal of empty buckets is performed to find output values, then consistent hashing can be implemented, but memory bandwidth usage and power consumption increase

Engineering Contradiction:
Improveconsistent hashing correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent pre-populates the hash ring with output values in all buckets before packet forwarding begins. This ensures that when consistent hashing is applied during packet forwarding, the hash function always finds a valid output value in the computed bucket without needing to traverse empty buckets, thereby maintaining consistent hashing correctness while eliminating the energy-consuming traversal operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11689463B1Reduced traversal for consistent hashing for packet flow load balancing
Publication Date: 2023.06.27 JUNIPER NETWORKS INC
  • US11689463B1 patent drawing
  • US11689463B1 patent drawing
  • US11689463B1 patent drawing

AI summary

In general, techniques are described for reducing traversal when performing consistent hashing for packet flow load balancing. A computing device comprising a memory and a processor may be configured to perform the techniques. The memory may store a hash ring that includes a plurality of buckets, where a non-zero subset of the plurality of buckets each includes a different output value of a plurality of output values, and a remaining subset of the plurality of buckets each includes an empty value. The processor may prepopulate the remaining subset of the plurality of buckets with the respective different output value of the plurality of output values. The processor may receive a key value, and apply a hash function to the key value to identify a bucket of the plurality of buckets. The processor may next output the output value associated with the identified bucket.