Shared Session Cache for Load Balancer Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional high availability (HA) load balancer pairs are inefficient as backup load balancers often sit idle and can terminate connections if both primary and backup fail simultaneously, leading to user frustration due to loss of persistent sessions when clients reconnect to different HA pairs without session information.

Innovation Solution

Implementing a shared session cache that allows any load balancer to access and maintain information about client-device associations with backend servers, enabling seamless session continuation across load balancer changes and efficient resource utilization by allowing physical and virtual load balancers to be added or removed without session loss.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional HA load balancer pairs are used, then backup load balancers provide redundancy, but backup load balancers sit idle and can terminate connections if both primary and backup fail simultaneously

Engineering Contradiction:
Improvesession continuityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent merges the session cache functionality into a shared external storage system that is accessible by all load balancers in the pool. This eliminates the need for separate local session caches on each load balancer and allows any load balancer to access session information for any client device, ensuring session continuity while enabling all load balancers to actively participate in handling requests.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared session cache enables all load balancers to perform the same session management functions, not just the primary load balancer. Any load balancer can retrieve session information and continue handling requests for clients that were previously served by other load balancers, making the system more flexible and eliminating idle backup load balancers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If load balancers use local session caches, then session information is stored locally, but session information is lost when load balancers change

Engineering Contradiction:
Improvesession persistenceVSAvoidload balancer scalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary shared storage system that acts as a mediator between load balancers and session data. Instead of load balancers directly maintaining local session caches, they all access the shared session cache through a common interface, ensuring that session information persists across load balancer changes while allowing the system to scale flexibly.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If backup load balancers are maintained for redundancy, then failover capability is provided, but resources are wasted as backups sit idle

Engineering Contradiction:
Improvefailover capabilityVSAvoidresource efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent transforms the static role of backup load balancers into a dynamic system where any load balancer can assume the role of handling specific client sessions based on availability and load conditions. The shared session cache enables this dynamic redistribution of work, allowing all load balancers to be actively utilized while maintaining failover capability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11418581B2Load balancer shared session cache
Publication Date: 2022.08.16 T MOBILE US INC
  • US11418581B2 patent drawing
  • US11418581B2 patent drawing
  • US11418581B2 patent drawing

AI summary

A shared session cache can be accessible by multiple load balancers, and can indicate whether client devices are associated with specific backend servers of a server pool. When a client device connects to a load balancer, the load balancer can use the shared session cache to determine if the client device is already associated with a specific backend server. If so, the load balancer can connect the client device to that specific backend server so that it can continue an existing session with the specific backend server. If not, the load balancer can select a new backend server for the client device, connect the client device to the newly selected backend server, and create an entry in the shared session cache indicating that the client device is associated with the newly selected backend server.