Cluster Server Failover via Client-Echoed Backup Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing transparent failover for web applications in cluster configurations is challenging due to the performance penalty and additional complexity of writing session data to shared persistent stores, and the overhead of in-memory replication techniques.

Innovation Solution

The method involves replicating session data in-memory across multiple servers, with the primary server sending a response to the client indicating the backup servers, which the client includes in subsequent requests, allowing the load balancer to route requests to a recovery server if the primary server is unavailable, thereby reducing the need for broadcast searches and maintaining session data locally.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If session data is written to a shared persistent store for failover, then availability is improved, but performance deteriorates due to significant performance penalty

Engineering Contradiction:
ImproveavailabilityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the session data storage function from the shared persistent store and places it in local memory on each server node. Each node maintains its own session data locally, eliminating the need to write to and read from a shared persistent store during normal operation, thus avoiding the performance penalty while maintaining availability through local caching and selective replication.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary replication of session data to backup nodes before failures occur. When a primary node's session data needs to be backed up, it is replicated in advance to designated backup nodes, so that if the primary node fails, the backup nodes already have the necessary session data ready, eliminating the need for slow persistent store recovery.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If session data is written to a shared persistent store for failover, then availability is improved, but device complexity increases due to additional cost and complexity

Engineering Contradiction:
ImproveavailabilityVSAvoidcomplexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent removes the dependency on shared persistent infrastructure for session data storage by implementing local memory storage on each node. This eliminates the need for complex shared storage systems, network file systems, or database connections for session management, thereby reducing device complexity and cost while maintaining failover capability through peer-to-peer replication.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of using a shared persistent store, the system creates simple memory copies of session data on backup nodes. These in-memory copies are sufficient for failover purposes and eliminate the need for complex persistent storage infrastructure, reducing overall system complexity.

Inventive Principle:
Principle #26Copying

3Productivity

If in-memory replication is used for failover, then performance is improved, but device complexity increases due to overhead of locating and retrieving backup data

Engineering Contradiction:
ImproveperformanceVSAvoidcomplexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a self-service mechanism where the client carries its own backup server information in each request. The client echoes back the identifier of the backup server that holds its session data, eliminating the need for the system to perform broadcast searches or complex lookups to locate backup data. This self-service approach maintains high performance while reducing system complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback from the client in the form of echoed backup server identifiers included in requests. This feedback mechanism provides the system with the necessary information to route requests to the correct backup node without requiring complex discovery protocols or broadcast searches, thus maintaining performance while simplifying the system.

Inventive Principle:
Principle #23Feedback

4Reliability

If broadcast searches are performed to locate backup servers, then failover capability is maintained, but productivity deteriorates due to time-consuming searches

Engineering Contradiction:
Improvefailover capabilityVSAvoidspeed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary assignment of backup servers to clients during the initial connection or session establishment phase. The backup server identifier is determined in advance and provided to the client, so that during failover scenarios, no broadcast search is needed. The client simply uses the pre-assigned backup server identifier from the echoed data in its request, maintaining both failover capability and high speed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8954786B2Failover data replication to a preferred list of instances
Publication Date: 2015.02.10 ORACLE INT CORP
  • US8954786B2 patent drawing
  • US8954786B2 patent drawing
  • US8954786B2 patent drawing

AI summary

A method, system, and medium are disclosed for performing transparent failover in a cluster server system. The cluster includes a plurality of servers. In servicing a client request, a primary server replicates session data for the client into memory space of one or more backup servers. The primary server sends a response to the client, wherein the response includes an indication of the one or more backup servers. When the client sends a subsequent request, it includes an indication of the backup servers. If the primary server is unavailable, the cluster determines a recovery server from among the backup servers indicated by the request. The chosen recovery server would then service the request.