Persistent In-Memory Checkpoint Images for Distributed Node Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current high-availability networked computer systems face challenges in quickly recovering from node, application, or communication link failures without impacting performance, particularly in maintaining the state of applications across replicated hardware and software modules.

Innovation Solution

Implementing periodic synchronization of in-memory checkpoint images and distributed memory segments across nodes, with asynchronous saving of persistent images to enable seamless failover and restart of applications in a consistent state, using multiple updater nodes to maintain and update these images with minimal performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If replication of hardware or software modules is used to achieve high availability, then fault tolerance is improved, but device complexity and management difficulty increase

Engineering Contradiction:
Improvefault toleranceVSAvoidmanagement complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the replication management into distinct functional components: primary nodes handle application execution and state generation, while secondary nodes handle state reception and failover readiness. This segmentation allows each node type to be optimized independently, reducing overall management complexity while maintaining fault tolerance through the distributed architecture.

Inventive Principle:
Principle #1Segmentation

2Reliability

If persistent images are saved synchronously to ensure data consistency, then reliability is improved, but application performance deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements periodic asynchronous saving of persistent images at predetermined time intervals rather than synchronous saving after every state change. This periodic approach ensures that recent state information is captured regularly enough to enable effective recovery, while the asynchronous nature prevents blocking application execution, thus maintaining high performance while achieving acceptable data consistency for failover scenarios.

Inventive Principle:
Principle #19Periodic action

3Reliability

If secondary components continuously synchronize with primary components to maintain state consistency, then reliability is improved, but use of energy and system resources increases

Engineering Contradiction:
Improvestate consistencyVSAvoidsystem resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Secondary nodes autonomously receive and process state information from primary nodes without requiring continuous active synchronization protocols. The primary node pushes state updates to secondary nodes only when changes occur, allowing secondary nodes to remain in a low-power standby state until needed for failover, thereby reducing overall system resource consumption while maintaining readiness.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8099627B1Persistent images of distributed shared memory segments and in-memory checkpoints
Publication Date: 2012.01.17 COHESITY INC
  • US8099627B1 patent drawing
  • US8099627B1 patent drawing
  • US8099627B1 patent drawing

AI summary

A method, system, computer system, and computer-readable medium that enable quick recovery from failure of one or more nodes, applications, and/or communication links in a distributed computing environment, such as a cluster. Recovery is facilitated by regularly saving persistent images of the in-memory checkpoint data and/or of distributed shared memory segments. The persistent checkpoint images are written asynchronously so that applications can continue to write data even during creation and/or updating the persistent image and with minimal effect on application performance. Furthermore, multiple updater nodes can simultaneously update the persistent checkpoint image using normal synchronization operations. When one or more nodes fail, the persistent checkpoint image can be read and used to restart the application in the most recently-saved state prior to the failure. The persistent checkpoint image can also be used to initialize the state of the application in a new node joining the distributed computing environment.