Distributed Checkpointing via Asynchronous Thread Snapshots
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


