Transient Table Load Balancer for Hitless Server Pool Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedynamic server adjustmentsVSAvoidflow stickiness
Core Design Contradiction:
Adaptability or versatilityVSReliability

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidmemory resources
Core Design Contradiction:
ProductivityVSQuantity of substance

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

Inventive Principle:
Principle #3Local quality

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

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If transient tables are used to maintain flow stickiness during server changes, then flow continuity is preserved, but system complexity increases

Engineering Contradiction:
Improveflow continuityVSAvoidload balancer structure
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improveserver pool dynamicsVSAvoiddata flow packets
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

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

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

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

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9621642B2Methods of forwarding data packets using transient tables and related load balancers
Publication Date: 2017.04.11 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US9621642B2 patent drawing
  • US9621642B2 patent drawing
  • US9621642B2 patent drawing

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.