Transient Table Load Balancer for Hitless Server Pool Changes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current load balancing techniques face challenges in maintaining flow stickiness and efficiently handling dynamic changes in server loads, leading to potential disruptions during server additions or removals, and may result in resource exhaustion and inefficiencies.
Innovation Solution
Implementing a hash-based load balancing architecture with transient tables and multicast/broadcast-based distributed approaches to dynamically manage bucket-to-blade mappings, ensuring hitless addition and removal of servers while maintaining flow stickiness.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional load balancing techniques are used to distribute requests among blade servers, then load distribution is achieved, but flow stickiness cannot be maintained during dynamic server changes
Solution Approach 1:
The system performs preliminary actions by pre-computing hash values for flow identifiers and maintaining a transient table that maps flow IDs to blade servers before actual server changes occur. This allows the load balancer to quickly redirect flows to new servers without interruption, maintaining flow stickiness during dynamic server adjustments
Solution Approach 2:
A transient table is introduced as an intermediary data structure between the hash-based load balancing algorithm and the actual server assignments. This transient table stores the mapping relationships and enables smooth transitions when servers are added or removed, allowing the system to adapt dynamically while maintaining reliable flow-to-server associations
2Productivity
If hash-based load balancing is implemented to improve distribution efficiency, then load balancing performance increases, but resource exhaustion may occur during high dynamic changes
Solution Approach 1:
The transient table is implemented with local quality by maintaining separate entry structures for different flow states (new flows, existing flows, flows during transition). Each entry contains only the necessary information for its specific state, optimizing memory usage while maintaining high load balancing efficiency through targeted data storage
Solution Approach 2:
The system uses partial action by only maintaining transient table entries for flows that are actively being redirected during server changes. Once a flow is successfully redirected, its transient entry is removed. This partial maintenance approach reduces memory consumption while preserving the high efficiency benefits of hash-based load balancing for active transitions
3Reliability
If transient tables are used to maintain flow stickiness during server changes, then flow continuity is preserved, but system complexity increases
Solution Approach 1:
The load balancer is segmented into distinct functional modules: a hash computation unit that generates flow identifiers, a transient table management unit that handles mapping relationships, and a packet forwarding unit that directs traffic. This segmentation maintains flow continuity through the transient table while reducing overall system complexity by assigning specific responsibilities to each module
Solution Approach 2:
The transient table stores copied mapping relationships between flow identifiers and blade server assignments rather than maintaining complex state information. This copying approach preserves flow continuity by providing quick lookup of current server assignments while simplifying the load balancer structure by avoiding the need for complex state management mechanisms
4Adaptability or versatility
If dynamic bucket-to-blade mappings are implemented to support server additions and removals, then system adaptability improves, but data flow losses may occur during transitions
Solution Approach 1:
The system applies beforehand cushioning by pre-calculating hash values and preparing transient table entries before actual server additions or removals take place. This proactive preparation ensures that when server changes occur, the mappings are already in place to prevent data flow losses, cushioning against potential packet loss during transitions
Solution Approach 2:
The transient table maintains continuous mapping information throughout the server transition process, ensuring that packet forwarding operations can proceed without interruption. By keeping the mapping data continuously available and updated, the system prevents data flow losses while supporting dynamic server pool changes
Data Source
AI summary
Methods may be provided to forward data packets to a plurality of servers with each server being identified by a respective server identification (ID). A non-initial data packet of a data flow may be received, with the non-initial data packet including information for the data flow, and a bucket ID for the non-initial data packet may be computed as a function of the information for the data flow. Responsive to the bucket ID for the data packet mapping to first and second server identifications (IDs) of respective first and second servers and responsive to the non-initial data packet being a non-initial data packet for the data flow, the non-initial data packet may be transmitted to one of the first and second servers using one of the first and second server IDs based on a flow identification of the data flow being included in a transient table for the bucket ID.


