Restartable Service Data Channel State Preservation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

When a service fails, the state of the communication channel between a computing client and the service is lost, requiring the client to reconstruct and potentially reissue outstanding requests, leading to application failures, which is unacceptable in production environments.

Innovation Solution

Implementing data structures such as request and completion queues in shared memory, along with a logical log, to allow the service to restart and resume data communication without interrupting the client, ensuring idempotency and maintaining the state of the communication channel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the service is restarted after failure, then the service can be quickly recovered, but the communication channel state is lost and requests must be reissued

Engineering Contradiction:
Improveservice availabilityVSAvoidcommunication channel state
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent applies preliminary action by having the service write outstanding requests to a request log before processing them. When the service restarts, it can recover these requests from the log without the client needing to reissue them, thus preserving communication state across service failures.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating a duplicate record of outstanding requests in a request log stored in shared memory. This copy persists across service restarts, allowing the service to reconstruct its communication state without client intervention.

Inventive Principle:
Principle #26Copying

2Loss of information

If the client reconstructs the communication channel state by reissuing requests, then the channel state can be recovered, but application failures occur and productivity is reduced

Engineering Contradiction:
Improvecommunication channel stateVSAvoidapplication operation continuity
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent introduces an intermediary mechanism (request log in shared memory) that bridges the client and service. The log acts as a mediator that preserves request state independently of service availability, eliminating the need for client-side reconstruction and preventing application failures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The service performs self-service by automatically recovering its communication state from the request log after a restart. This eliminates the need for the client to detect failures, reconstruct state, or reissue requests, thereby maintaining application continuity.

Inventive Principle:
Principle #25Self-service

3Reliability

If request state is stored in shared memory, then service restart does not lose communication state, but system complexity increases

Engineering Contradiction:
Improvecommunication channel state persistenceVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the communication state into discrete request records stored in a structured log format. Each request is represented as an independent data structure with specific fields, allowing systematic storage, retrieval, and management of communication state without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11088896B2Data channel between a client and a restartable service
Publication Date: 2021.08.10 VMWARE INC
  • US11088896B2 patent drawing
  • US11088896B2 patent drawing
  • US11088896B2 patent drawing

AI summary

A data communication channel between a client and a service is preserved through a failure of the server by maintaining a request log and an inflight request queue in a protected memory region that preserves the contents of the request log and the inflight request queue even when the service encounters a failure. The method of restarting the data communication channel includes, upon the service being restarted following the failure of the service, determining whether the request log contains requests and, if so, copying the requests from the request log into the in-flight request queue and then removing the copied requests from the request log. The requests in the in-flight request queue, which include any that were in the in-flight request queue at the time of the failure of the service and any that were copied from the request log, are then processed.