Dynamic Lookup Table Resizing for Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing load balancing techniques in packet forwarding systems face challenges in efficiently distributing traffic load among nodes, leading to uneven traffic distribution and potential performance issues when nodes are added or removed, as they require static provisioning of lookup tables, which can result in inefficient memory usage and performance bottlenecks.

Innovation Solution

The system dynamically adjusts the size of the lookup table by modifying the subset of bits used in the mapping value to index nodes, allowing for the addition or removal of nodes while maintaining even traffic distribution, using a predetermined hash function and expanding the lookup table by adding bit positions to accommodate new nodes, thereby decoupling the hash function from the lookup table and minimizing remapping of packet flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a static lookup table is provisioned to accommodate the maximum number of nodes, then the system can handle any number of nodes up to the maximum, but memory usage is inefficient when fewer nodes are active

Engineering Contradiction:
Improvenode scalabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements a dynamic lookup table that automatically resizes its capacity based on the current number of active nodes in the network. When nodes are added or removed, the lookup table adjusts its size accordingly, using bit positions from the hash function output to determine the appropriate table size. This eliminates the need for static overprovisioning while maintaining the ability to handle varying numbers of nodes efficiently.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the lookup table size is increased to accommodate new nodes, then traffic distribution can be maintained, but existing packet flows may be remapped causing disruptions

Engineering Contradiction:
Improvenode addition capabilityVSAvoidpacket flow continuity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent employs a predetermined hash function that consistently maps packet flows to specific bit positions. When the lookup table needs to be resized to accommodate new nodes, the system uses the same hash function with adjusted bit positions to determine new table sizes. This preliminary establishment of the hashing mechanism ensures that packet flows are remapped in a controlled and predictable manner, minimizing disruptions while accommodating node additions.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a fixed number of bit positions is used for indexing, then the lookup table size is fixed, but the system cannot adapt when nodes are added or removed

Engineering Contradiction:
Improvepacket forwarding efficiencyVSAvoiddynamic node management
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the parameter of bit positions used from the hash function output based on the current number of active nodes. When nodes are added or removed, the system adjusts which bit positions are utilized to index the lookup table. This dynamic parameter adjustment allows the lookup table size to scale with the number of nodes while maintaining efficient packet forwarding through consistent hashing.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10841225B2Load balancing using dynamically resizable consistent hashing
Publication Date: 2020.11.17 ARISTA NETWORKS INC
  • US10841225B2 patent drawing
  • US10841225B2 patent drawing
  • US10841225B2 patent drawing

AI summary

Packet forwarding includes creating a first lookup table for mapping packets to nodes based on the number of nodes in a first set of nodes. A received packet is mapped to a mapping value using a predetermined mapping function. The first lookup table is indexed using a first subset of bits comprising the mapping value. A second lookup table is created in response to adding a node to the first set of nodes. A subsequently received packet is mapped to a mapping value using the same predetermined mapping function to index the second lookup table using a second subset of bits comprising the mapping value.