Protocol Proxy for Transparent Server Failover in Stateful Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Stateful distributed protocols face challenges in server failover, leading to client-side failures and performance slowdowns due to loss of state information when a server fails, and requiring servers to be stateless would significantly slow down transactions.

Innovation Solution

A protocol proxy intercepts client requests to maintain state information, updates a data structure to track client-server state, and upon server failure, reconnects or switches to a backup server, restoring state information and retransmitting in-flight requests to ensure transparent failover without requiring the server to be stateless.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the server maintains state information in volatile memory, then transaction speed is improved, but reliability deteriorates due to loss of state information upon server failure

Engineering Contradiction:
Improvetransaction speedVSAvoidstate information reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces a proxy as an intermediary component that maintains state information separately from the server. The proxy intercepts client requests, manages state data structures, and coordinates with both the client and server. This mediator approach allows the server to operate with fast volatile memory while the proxy ensures reliability by preserving state information independently, resolving the contradiction between speed and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the server commits state information to persistent memory to be stateless, then reliability is improved, but transaction speed deteriorates significantly

Engineering Contradiction:
Improvestate information reliabilityVSAvoidtransaction speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments the state management function from the server process and places it in the proxy. The state data structure is divided into client-specific states and file-specific states, managed separately by the proxy. This segmentation allows the server to remain fast and volatile-memory-based, while the proxy handles persistence and reliability concerns, avoiding the performance penalty of committing every state change to persistent memory on the server side.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the server fails over to a backup server, then availability is improved, but client state information is lost requiring client-side failure

Engineering Contradiction:
Improveserver availabilityVSAvoidclient state information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The proxy performs preliminary actions by maintaining a complete state data structure that includes all client states and file states before any server failure occurs. When failover is needed, the proxy has already prepared the state information and can restore it on the new server without requiring client reconnection or state re-establishment. This preliminary state management prevents information loss during failover.

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If the proxy maintains complete state information for all clients, then transparency of failover is improved, but device complexity increases

Engineering Contradiction:
Improvefailover transparencyVSAvoidproxy complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The proxy implements local quality by maintaining state information in a structured manner with distinct client-state mappings and file-state mappings. Each client has its own state entry, and each file has its own state tracking. This organized, localized state management allows the proxy to handle failover transparently for each client independently, reducing the operational complexity compared to a monolithic state management approach.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10382576B2Transparent server failover in stateful distributed protocols
Publication Date: 2019.08.13 VMWARE INC
  • US10382576B2 patent drawing
  • US10382576B2 patent drawing
  • US10382576B2 patent drawing

AI summary

Exemplary methods, apparatuses, and systems include a proxy intercepting, from a client, a plurality of requests addressed to a first server. The proxy adds an entry for each of the plurality of requests to a data structure. Each entry includes data from one of the plurality of requests. The proxy forwards each of the plurality of requests to the first server. In response to detecting the first server was unavailable or otherwise failed, the proxy reconnects to the first server when the first server recovers or connects to a second server serving as a backup for the first server. The proxy transmits to the first or second server one or more commands using the entries of the data structure to restore state information for the client.