History-Based Connection Affinity for Network Load Balancers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network load balancers face memory constraints due to resilient hashing and stateful load balancing, making it impractical to build ASIC-based solutions as they require significant memory for hash table replication and per-connection state information, exceeding the capacity of existing ASICs.

Innovation Solution

Implementing history-based connection-server affinity and improved resilient hashing schemes such as resilient hashing with multiple hashes and compression, which reduce memory usage by maintaining server history information on a per-bucket basis and using hierarchical or compressed hash tables, allowing for efficient load balancing without extensive memory requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional resilient hashing and stateful load balancing are implemented, then connection affinity and traffic distribution are achieved, but memory usage exceeds ASIC capacity

Engineering Contradiction:
Improveconnection affinityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the connection-server affinity mechanism into two parts: (1) a hash table that maps connection identifiers to server identifiers, and (2) a history table that stores only the previous server identifier for each bucket. This segmentation eliminates the need to store complete per-connection state information while maintaining affinity, reducing memory usage from O(N) to O(M) where M is the number of buckets and N is the number of connections.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of storing complete connection state information for all connections (excessive action), the patent stores only the necessary historical server mapping information (partial action) in the history table. This partial information is sufficient to restore connection affinity when server mappings change, achieving the required reliability with minimal memory overhead suitable for ASIC implementation.

Inventive Principle:
Principle #16Partial or excessive action

2Quantity of substance

If software-based load balancers are used, then memory capacity requirements are met, but network bandwidth is orders of magnitude less than ASIC-based devices

Engineering Contradiction:
Improvememory capacityVSAvoidnetwork bandwidth
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent changes the fundamental parameters of the data structure from storing complete connection states (software approach) to storing only bucket-to-server mappings and historical server identifiers (hardware-friendly approach). This parameter change reduces memory requirements to fit within ASIC capacity while enabling hardware-accelerated network bandwidth performance.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If per-connection state information is stored for all connections, then connection affinity is maintained, but memory usage becomes impractical for hardware implementation

Engineering Contradiction:
Improveconnection affinityVSAvoidmemory structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential information needed for connection affinity from the complete per-connection state. By taking out just the bucket identifier and previous server identifier pairs, the system maintains connection affinity functionality while eliminating the complexity of storing and managing complete connection states, making the memory structure practical for hardware implementation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11019137B2Implementing history-based connection-server affinity on a network load balancer
Publication Date: 2021.05.25 ARISTA NETWORKS INC
  • US11019137B2 patent drawing
  • US11019137B2 patent drawing
  • US11019137B2 patent drawing

AI summary

Techniques for implementing history-based connection-server affinity on a network load balancer are provided. In one set of embodiments, the network load balancer can receive a network packet destined for a service, where the service is associated with a plurality of servers, and where the packet is part of a network connection between a client device and one of the plurality of servers. The network load balancer can further compute, using a portion of the packet, a bucket identifier of a bucket for the network connection, identify a first server in the plurality of servers that is currently mapped to the bucket identifier in a hash table, and send the packet to the first server. If the network load balancer receives the packet back from the first server, the network load balancer can determine, based on local history information, a second server that was previously mapped to the bucket identifier in the hash table and send the packet to that second server.