Hash Engine NIC Load Balancing and Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network systems lack an efficient method to distribute and redistribute network connections across multiple network interface cards (NICs), often assigning new connections to overloaded or unreliable NICs, leading to reduced performance and computational overhead in managing connection states.

Innovation Solution

A method that intercepts and modifies Address Resolution Protocol (ARP) packets to redirect network traffic to a different NIC using a hash engine, which intelligently selects a NIC based on utilization and error rates, allowing for load balancing, failover, and failback operations without the computational expense of managing complex connection states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the operating system selects a NIC for network connection without regard to utilization or error rate, then the connection can be established quickly, but the selected NIC may be overloaded or unreliable leading to reduced network performance

Engineering Contradiction:
Improveconnection establishment speedVSAvoidnetwork performance
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary actions by pre-calculating hash values for connection identifiers and pre-establishing mapping relationships between connection identifiers and NICs. When a new connection is needed, the pre-computed hash value is directly queried to determine the assigned NIC, avoiding real-time analysis and enabling both quick connection establishment and reliable NIC selection based on historical performance data.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a sophisticated data structure containing connection state is maintained to avoid assigning new connections to overloaded NICs, then network performance can be improved, but the computational cost increases degrading overall performance

Engineering Contradiction:
Improvenetwork performanceVSAvoidcomputational performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invention extracts only the essential information needed for NIC selection (connection identifier and its hash value) from the complex connection state data structure. By maintaining a simplified mapping between connection identifiers and NICs based on hash values, the system eliminates the need for sophisticated real-time analysis while preserving the ability to avoid overloaded NICs, thus improving computational performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system replaces complex software-based connection state management with a more efficient hash-based indexing mechanism. Instead of maintaining and analyzing sophisticated data structures in software, the invention uses hash values to directly map connections to NICs, reducing computational overhead while achieving the same load balancing objective.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If connection state data structure is maintained to track NIC utilization, then intelligent load balancing can be achieved, but the complexity of managing and analyzing connection state increases

Engineering Contradiction:
Improveload balancing capabilityVSAvoidconnection state management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention segments the connection state management into independent hash buckets based on connection identifier hash values. Each bucket independently stores the mapping between a specific connection identifier and its assigned NIC, eliminating the need to analyze the entire connection state structure. This segmentation enables intelligent load balancing while significantly reducing management complexity through localized, independent hash table operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7995465B2Intelligent load balancing and failover of network traffic
Publication Date: 2011.08.09 NVIDIA CORP
  • US7995465B2 patent drawing
  • US7995465B2 patent drawing
  • US7995465B2 patent drawing

AI summary

A hash engine in a network device driver maintains data on the utilization and error rate for each network interface card (“NIC”) within a local computing device. From this data, the hash engine intelligently selects transmit NICs and receive NICs based on various networking parameters provided from a software driver program. Transmit packets sent from the operating system in a local computing device to a remote computing device are intercepted, modified and redirected to transmit NICs selected by the hash engine for transmission to remote computing devices. Similarly, address resolution protocol (“ARP”) response packets sent by the operating system in response to ARP request packets are intercepted, modified and redirected to receive NICs selected by the hash engine for transmission. By selecting receive NICs and transmit NICs in this fashion, the hash engine is able to intelligently load balance transmit and receive traffic in the local computing device, thereby improving overall network performance relative to prior art techniques.