Dynamic Link Load Balancing via Bloom Filter Hash Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer network technologies face inefficiencies in distributing traffic across parallel data paths, leading to packet reordering and uneven bandwidth usage, which results in congestion and increased latency.
Innovation Solution
The implementation of a dynamic load balancing technique that uses a set of hash functions to distribute new packet flows across parallel data paths while ensuring in-order delivery of packets by applying the same hash function to each packet of a flow, utilizing a Bloom filter to select the appropriate hash function and avoid congested paths.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If per-packet flow distribution methods are used to prevent packet reordering, then packet delivery order is maintained, but processing power and memory requirements increase significantly
Solution Approach 1:
The patent segments the packet flow distribution problem by separating the hash function selection from the flow distribution tracking. Instead of maintaining a complete flow-to-link map for all packets, the system uses a Bloom filter to probabilistically determine which hash function to apply, reducing the data structure size while maintaining distribution accuracy.
Solution Approach 2:
The patent changes the parameter of hash function selection dynamically based on Bloom filter results. Different hash functions are selected based on the packet flow characteristics identified by the Bloom filter, allowing the system to adapt to varying traffic patterns without increasing overall system complexity.
2Reliability
If per-packet flow distribution methods are used to track packet flows, then packets of the same flow traverse the same links, but a massive data structure is required to track flows in real time
Solution Approach 1:
The patent uses a Bloom filter, which is a space-efficient, probabilistic data structure that uses minimal memory compared to traditional flow-to-link maps. The Bloom filter provides a compact representation that can track multiple flows simultaneously without requiring large amounts of memory, effectively replacing the massive data structure with a much smaller alternative.
3Productivity
If per-packet distribution methods are used to balance bandwidth, then load is distributed across links, but packets of the same flow arrive out of order
Solution Approach 1:
The patent implements dynamic load balancing by selecting different hash functions based on current network conditions and flow characteristics. The system dynamically adjusts which hash function to apply for each packet flow, allowing it to optimize for both load balancing and packet order maintenance depending on the specific flow and network state.
4Productivity
If per-packet flow methods are used to assign flows to links, then packet flows are distributed across links, but congested links receive new packet flows while other links remain unused
Solution Approach 1:
The patent incorporates feedback mechanisms where the Bloom filter tracks the distribution patterns and network conditions. This feedback allows the system to identify when certain links are congested and adjust the hash function selection accordingly, redirecting new packet flows to underutilized links and preventing the congestion problems seen in static distribution methods.
Data Source
AI summary
Techniques are described for load balancing packet flows across parallel data paths. For example, a network device includes a plurality of parallel network interfaces and a control unit that applies each of a first set of hash functions to a packet and one of a second set of hash functions to the packet. Bins of each of the first set of hash functions are mapped to bits of a bit vector. Bins of each of the second set of hash functions are mapped to the plurality of parallel network interfaces. The control unit selects the one of the second set of hash functions to apply to the packet based on values of the bits of the bit vector. The control unit forwards the packet through the network interface that is identified by applying the selected one of the second set of hash functions to the packet.


