Cluster Application State Snapshot Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High-availability computer clusters face significant downtime and data loss when migrating RAM-intensive applications due to the extensive delay required for recalculating lost data upon a computer failure, especially for applications like supply-control-software that perform complex calculations in RAM for extended periods.
Innovation Solution
Creating a snapshot of the application's state in volatile memory and transferring it to storage media, allowing a second instance to initialize from this snapshot rather than initial conditions, thereby minimizing the need for recalculation and reducing downtime by using a transfer processor to expedite the process without halting the application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the application state is saved to disk using the save function, then data can be recovered after failure, but the calculation delay increases significantly (up to an hour per save operation)
Solution Approach 1:
The system continuously creates snapshots of the application state in volatile memory during normal operation, so that when failure occurs, the most recent state is already prepared and can be immediately transferred to the standby computer without waiting for the application to intentionally save to disk
Solution Approach 2:
Instead of relying on the application's save function to copy data to disk, the system automatically creates a copy of the application state in volatile memory and transfers it to the standby computer's storage, bypassing the need for the application to freeze and save manually
2Measurement precision
If the application is frozen to create a complete state copy in RAM, then the snapshot is accurate, but the application execution is halted during the copying process
Solution Approach 1:
The system divides the application state into multiple memory sections and copies only the modified sections that need to be included in the snapshot, rather than freezing the entire application state. This allows continuous execution while capturing necessary state information
Solution Approach 2:
The system creates snapshots of only the necessary memory sections that contain unmodified data, rather than copying the entire application state. This partial copying approach maintains snapshot accuracy for critical data while minimizing disruption to application execution
3Reliability
If a complete copy of application data in RAM is made for the snapshot, then the second instance can resume from the exact state, but the time required to create the snapshot increases significantly
Solution Approach 1:
The system segments the application memory into sections and identifies which sections need to be copied to the snapshot based on modification status. Only modified sections are copied, reducing the snapshot creation time while maintaining sufficient state information for restoration
Solution Approach 2:
The system dynamically determines which memory sections need copying based on real-time modification status, allowing the snapshot process to adapt to current application state changes rather than requiring a static complete copy
Data Source
AI summary
A computer cluster includes a first computer for running a first instance of an application and a second computer for running a backup instance of the application. The first node provides for creating a snapshot in volatile RAM of a state associated with the application while it is running. Initially, the snapshot can be created in the form of pointers to RAM used by the application so that the snapshot overlaps application data, but sections of the snapshot can be moved in RAM when the application needs to modify a section of its memory. The snapshot can then be transferred to a shared disk. In the event of a failure of the first node, the backup instance can begin processing from the state represented by the snapshot rather than from initial conditions.


