Centralized Load Balancer Using Weighted Hash Function
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional load balancers in data centers face challenges in effective resource allocation due to the need for significant state information and lack of flow awareness, leading to inefficient utilization and scalability issues, especially in heterogeneous server and virtual machine environments.
Innovation Solution
A centralized load balancer using a weighted hash function with an 'invite/disinvite' scheme adjusts weights based on load indicators from virtual machines, dynamically reassigning packets to optimize resource utilization and maintain flow integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a centralized load balancer uses traditional hash functions for load distribution, then flow integrity is maintained, but server utilization becomes inefficient due to heterogeneous server performance
Solution Approach 1:
The patent applies local quality by assigning different weights to different servers based on their individual performance characteristics. The weighted hash function modifies the traditional hash distribution by incorporating server-specific weights, allowing each server to receive a proportion of flows matching its capacity. This resolves the contradiction by maintaining flow integrity through deterministic hashing while improving utilization through localized weight adjustments.
Solution Approach 2:
The patent changes the parameter of the hash function from uniform distribution to weighted distribution. By introducing weight parameters that reflect server performance metrics (such as processing speed, current load, or historical performance), the system transforms the load distribution mechanism to account for server heterogeneity. This allows the same hash function structure to maintain flow integrity while adapting to different server capabilities through parameter modification.
2Device complexity
If load balancers are localized to one rack or small cluster, then state information requirements are reduced, but global resource allocation efficiency deteriorates
Solution Approach 1:
The patent applies segmentation by dividing the global load balancing problem into distributed weight management segments. Each server or rack maintains its own weight information locally, and the weighted hash function uses these distributed weights to make load balancing decisions. This allows global resource allocation efficiency to improve through better-awareness of server heterogeneity while keeping state information requirements manageable through local storage and computation at each segment.
3Ease of operation
If randomized round robin scheduling is used, then load distribution is simplified, but flow awareness is lost leading to packet reordering issues
Solution Approach 1:
The patent introduces a weighted hash function as an intermediary between the simplified randomized round robin approach and flow-aware load balancing. This intermediary mechanism uses deterministic hashing based on flow identifiers (such as 5-tuple) to ensure all packets of the same flow are consistently directed to the same server, while the weight parameters provide simplified load distribution. This resolves the contradiction by maintaining both flow awareness and operational simplicity through the intermediary hashing mechanism.
Data Source
AI summary
A method, apparatus, and machine readable storage medium is disclosed for balancing loads among a plurality of virtual machines (VMs) from a central dispatcher, wherein the dispatcher receives data packets and maps the data packets to VMs selected from the plurality of VMs, using a weighted hash function, having an associated weighting for each VM and forwarding each packet to a VM accordingly, wherein a load balancer decrements a weighting for a VM, responsive to an indication of the load on the VM exceeding a first load threshold. Weightings can correspond to a number of bins associated with each VM. Weightings are adjusted in response to receiving invite and disinvite messages from the VMs, representing their respective loads.


