Distributed Checkpointing via Asynchronous Thread Snapshots

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed systems, managing failures effectively is challenging due to the need for simultaneous checkpointing across all nodes, which can lead to system restarts from a single checkpoint, causing inefficiencies and potential data loss if dependencies are not properly managed.

Innovation Solution

A method and apparatus for automatic checkpointing and recovery in distributed systems, where a master node sends stop and checkpoint commands to subordinate nodes, allowing them to continue execution until a predetermined checkpoint, store state and memory snapshots, and recover from failures by reloading these snapshots, enabling selective recovery of affected portions rather than the entire system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the master node sends a stop thread call to child nodes to perform checkpointing, then the system can create checkpoints for recovery, but the entire distributed system must restart from the checkpoint because all parts must synchronize at the same execution point

Engineering Contradiction:
Improvesystem recovery capabilityVSAvoidsystem restart efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the distributed system into independent checkpointable units (threads/processes) that can perform checkpoints asynchronously. Each thread has its own checkpoint mechanism, allowing individual threads to be restarted from their respective checkpoints without requiring the entire system to synchronize and restart from a single global checkpoint, thus improving recovery efficiency while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If the child node immediately stops execution upon receiving the stop thread call, then checkpointing can be performed, but the thread stops regardless of whether it is in a critical section causing potential data loss or inconsistency

Engineering Contradiction:
Improvecheckpoint executionVSAvoiddata consistency
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements preliminary actions by having threads execute checkpoint code at predetermined checkpoint locations in their execution flow. The stop thread call mechanism allows the system to pause threads at these predetermined locations rather than forcing immediate stops during critical sections. This ensures that threads are stopped at safe points where their state is consistent and ready for checkpointing, preventing data loss while enabling reliable checkpoint recovery.

Inventive Principle:
Principle #10Preliminary action

3Ease of repair

If the distributed system restarts from a single checkpoint, then recovery can be performed, but dependencies between parts of the system cannot be properly managed leading to potential failures

Engineering Contradiction:
Improvesystem recoveryVSAvoiddependency management
Core Design Contradiction:
Ease of repairVSReliability

Solution Approach 1:

The patent introduces dynamic dependency tracking where the system monitors and records dependencies between threads and processes. When a failure occurs, the system uses this dynamic dependency information to intelligently determine which threads and processes need to be restarted from their respective checkpoints, rather than forcing a global restart. This dynamic approach allows the system to manage dependencies properly during recovery, ensuring that threads are restarted in the correct sequence and that dependency constraints are maintained, thereby improving both recovery ease and reliability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7516361B2Method for automatic checkpoint of system and application software
Publication Date: 2009.04.07 ORACLE AMERICAN INC
  • US7516361B2 patent drawing
  • US7516361B2 patent drawing
  • US7516361B2 patent drawing

AI summary

A method for checkpointing a system that includes receiving a stop command by an executing thread from a master, wherein the executing thread executes an operating system, continuing execution of the executing thread until a checkpoint is reached after receiving the stop command, halting execution of the executing thread at the checkpoint, and checkpointing the system by storing a state and a snapshot of memory.