Non-Volatile Memory State Persistence for Server Failure Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of managing large-scale server-based application programs, particularly in distributed environments, is exacerbated by the difficulty in efficiently recovering from failures due to substantial performance overhead in saving and restoring state information, which can lead to cascading failures and inadequate debugging of timing-related defects in asynchronous communication systems.

Innovation Solution

Implementing a hybrid system memory with both volatile and non-volatile portions, where critical state information is stored in non-volatile memory to ensure durability and low latency, allowing for rapid recovery and enhanced logging techniques to retain crucial data across failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If state information is saved in persistent storage devices, then reliability is improved, but speed deteriorates

Engineering Contradiction:
ImprovereliabilityVSAvoidspeed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments state information into two categories: critical state information that must be persisted, and non-critical state information that can be lost. Critical state information is saved to persistent storage devices to ensure reliability, while non-critical information remains in volatile memory for fast access. This segmentation allows the system to achieve both reliability for essential data and speed for overall operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the essential critical state information from the complete state and saves it to persistent storage, leaving the rest in volatile memory. This extraction approach minimizes the amount of data written to slow persistent storage while maintaining the reliability needed for system recovery.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If state information is saved frequently, then reliability is improved, but productivity deteriorates

Engineering Contradiction:
ImprovereliabilityVSAvoidproductivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by treating different types of state information differently. Critical state information is saved frequently to persistent storage to ensure reliability, while non-critical information is updated in volatile memory without frequent persistence operations. This differentiated approach maintains reliability for essential data while preserving productivity for overall system performance.

Inventive Principle:
Principle #3Local quality

3Reliability

If recovery mechanisms are implemented, then reliability is improved, but loss of time increases

Engineering Contradiction:
ImprovereliabilityVSAvoidloss of time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-saving critical state information to persistent storage during normal operation before failures occur. This advance preparation ensures that when a failure happens, the system can quickly recover using the already-persisted critical state without needing to perform time-consuming recovery operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and persists only the critical state information needed for recovery, minimizing the amount of data that needs to be read back during recovery. This extraction approach reduces recovery time while maintaining reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10089220B1Saving state information resulting from non-idempotent operations in non-volatile system memory
Publication Date: 2018.10.02 AMAZON TECH INC
  • US10089220B1 patent drawing
  • US10089220B1 patent drawing
  • US10089220B1 patent drawing

AI summary

Methods and apparatus for saving state information resulting from non-idempotent operations are described. A computer system includes a system memory coupled to one or more processors. The system memory comprises at least a non-volatile portion. Elements of state information associated with an executable component that are to be stored within the non-volatile portion are identified. In response to detecting an occurrence of a particular non-idempotent operation that results in the generation of state information, selected elements of information are stored in the non-volatile portion of the system memory. In response to a request subsequent to a failure event, wherein the failure event resulted in a loss of data stored in a volatile portion of the system memory, the state information is read from the non-volatile portion.