Network Load Balancing via Controller-Programmed Lookup Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In network communications, existing load balancing techniques often lead to inefficient distribution of network traffic between server computers, potentially resulting in server overload, especially in software-defined networks where hardware devices may lack resources to perform complex random number generation or hashing functions efficiently.
Innovation Solution
Intermediary network devices, such as programmable switches or routers, receive rules from a network controller to distribute network packets based on modulus operations or pseudo-random values, selecting destination servers and modifying packet destinations to balance load, even on hardware devices with limited resources, ensuring efficient traffic distribution and reduced latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If complex random number generation or hashing functions are used for load balancing, then traffic distribution efficiency is improved, but hardware device resource requirements increase
Solution Approach 1:
The patent extracts the complex random number generation and hashing functions from the hardware device (switch) and relocates them to the controller. The controller generates random values or hashing keys and programs the switch with simplified lookup tables, allowing the switch to perform only simple table lookups based on packet characteristics. This resolves the contradiction by maintaining efficient traffic distribution through the controller's computational power while reducing the switch's resource requirements to simple memory access operations.
Solution Approach 2:
The patent introduces an intermediary mechanism (lookup table programmed by the controller) between the packet and the load balancing decision. Instead of the switch directly performing complex computations on packets, the intermediary lookup table provides a simplified mapping from packet characteristics to destination servers. This intermediary approach maintains the efficiency of load balancing while significantly reducing the computational burden on the hardware switch.
2Device complexity
If simple modulus operations are used for load balancing, then hardware device resource requirements are reduced, but traffic distribution uniformity deteriorates
Solution Approach 1:
The patent applies preliminary action by having the controller pre-generate random values or hashing keys and store them in lookup tables before the switch performs load balancing. This preliminary preparation of random data allows the simple switch to achieve uniform traffic distribution without performing complex computations in real-time. The randomness is pre-computed and stored, enabling the modulus operation to distribute traffic uniformly across servers while keeping the switch's resource requirements low.
3Measurement precision
If real-time load monitoring is implemented, then load balancing accuracy is improved, but network latency increases
Solution Approach 1:
The patent implements preliminary action by pre-computing load balancing decisions based on packet characteristics (such as source IP, destination IP, or other identifiers) before packets arrive at the switch. The controller programs the switch with lookup tables that map packet identifiers to destination servers, eliminating the need for real-time load monitoring during packet forwarding. This pre-computation approach maintains accurate load balancing while minimizing network latency, as the switch only needs to perform fast table lookups rather than real-time monitoring and decision-making.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
Examples relate to load balancing servers. In one example, a computing device may: receive a network packet from a source device, the network packet including data specifying a value; divide the value included in the network packet by a divisor; determine, from a plurality of servers, a destination server for the network packet based on a remainder of the division; and forward the network packet to the destination server.