Cluster Server Failover via Client-Echoed Backup Routing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
4Reliability
If broadcast searches are performed to locate backup servers, then failover capability is maintained, but productivity deteriorates due to time-consuming searches
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.
Data Source
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.


