Multi-way Checkpoints for Filesystem Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data storage systems face challenges in maintaining multiple checkpoint versions of a filesystem, where both the current and checkpoint versions may become corrupted, and important information may be lost or altered, with existing systems struggling to ensure data integrity and availability.
Innovation Solution
The method involves maintaining at least three superblocks in the data storage system, each representing a version of the filesystem, including a working version and two checkpoint versions, with indirection objects referenced by these superblocks, allowing for the retention of a new checkpoint version while continuing to manage the filesystem using a separate superblock, thereby ensuring data integrity and availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If only two superblocks are maintained (one current, one checkpoint), then device complexity is reduced, but data integrity and reliability deteriorate because both versions may become corrupted or important information may be lost
Solution Approach 1:
The filesystem metadata structure is segmented into multiple independent superblocks (at least three: current, first checkpoint, second checkpoint) instead of using a single or dual superblock system. Each superblock maintains separate filesystem state information, allowing independent validation and recovery paths.
Solution Approach 2:
Different superblocks serve different functional roles with specialized purposes: the current superblock for active filesystem operations, and checkpoint superblocks for preserved historical states. This local specialization allows optimized handling of each superblock type.
2Reliability
If multiple checkpoint versions are maintained, then data integrity is improved, but device complexity increases due to managing multiple superblocks and indirection objects
Solution Approach 1:
An indirection object is introduced as an intermediary data structure that manages references to multiple superblocks. This indirection layer abstracts the complexity of managing multiple checkpoint versions, providing a unified interface for accessing different filesystem states without requiring direct management of each superblock.
Solution Approach 2:
The system adds a temporal dimension to superblock management by maintaining multiple versions across different time points (current and historical checkpoints). This multi-dimensional approach allows recovery to any previous state while organizing complexity in a structured temporal sequence.
3Ease of operation
If two superblocks are used for current and checkpoint versions, then ease of operation is maintained, but the risk of simultaneous corruption increases
Solution Approach 1:
The system maintains multiple checkpoint superblocks as preventive cushions against data loss. By preserving at least two checkpoint versions in addition to the current superblock, the system creates buffer layers that protect against simultaneous corruption events, ensuring recovery capability even when some superblocks are compromised.
4Reliability
If more than two superblocks are maintained, then data availability is improved through multiple recovery points, but storage overhead increases
Solution Approach 1:
The system implements a lifecycle management approach where checkpoint superblocks are maintained for a defined period and then discarded or archived. This allows the system to provide multiple recovery points while managing storage overhead by periodically cleaning up older checkpoints that are no longer needed for recovery.
Data Source
AI summary
Embodiments of the present invention allow multiple checkpoints to be taken so that multiple versions of the filesystem, including a working version and at least two checkpoint versions, can be maintained over time. Specifically, at least three “superblock” root structures are used to manage multiple instantiations of the filesystem. The superblocks are preferably stored in fixed locations within the storage system for easy access, although they may alternatively be stored in other ways. The number of superblocks may be fixed or variable.


