Snapshot Tree Data Structure for Selective File Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing methods for snapshot management in storage systems require large amounts of storage to maintain full and incremental snapshots, leading to inefficient use of resources when only a portion of the data needs to be recovered, as they often necessitate reconstructing the entire snapshot tree from the last full snapshot and adding incremental snapshots.
Innovation Solution
The system employs a snapshot tree data structure that allows for the serialization of data into a flat set, enabling the reconstruction of specific portions of the tree without needing to restore the entire structure, using stub nodes to efficiently retrieve and restore only the requested data, thereby reducing storage and processing requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full snapshots and incremental snapshots are stored to enable data recovery, then data recovery capability is improved, but storage space consumption increases
Solution Approach 1:
The patent implements a snapshot tree structure where each snapshot contains references to parent snapshots, creating a nested hierarchy. Full snapshots contain complete data, while incremental snapshots contain only changes and reference parent snapshots for unchanged data. This nested structure allows the system to store multiple snapshots efficiently by sharing common data blocks across generations, reducing total storage consumption while maintaining full recovery capability.
2Reliability
If the entire snapshot tree is reconstructed to recover a portion of data, then data recovery completeness is improved, but recovery time and processing resources increase
Solution Approach 1:
The patent enables selective extraction of only the required data portions from the snapshot tree. When a recovery request is made, the system identifies the specific data blocks needed and retrieves them directly from the relevant snapshots, rather than reconstructing the entire snapshot tree. This extraction approach maintains data recovery completeness for the requested portions while significantly reducing recovery time and processing resources by avoiding unnecessary data reconstruction.
Solution Approach 2:
The snapshot tree is segmented into independent data blocks and nodes that can be individually accessed. Each snapshot is divided into data blocks with unique identifiers, allowing the system to retrieve specific segments (data blocks) without processing the entire snapshot structure. This segmentation enables parallel retrieval operations and optimizes I/O efficiency by focusing only on the required data portions.
3Manufacturing precision
If incremental snapshots are added to the full snapshot to recover data at a specific time point, then recovery accuracy is improved, but processing complexity and resource consumption increase
Solution Approach 1:
The patent performs preliminary organization of snapshots into a structured tree hierarchy during the backup process. Each snapshot is pre-configured with references to its parent snapshot and associated data blocks are indexed with metadata. This preliminary structuring enables the recovery process to simply follow pre-established pointers and references rather than performing complex merge operations, reducing processing complexity while maintaining high recovery accuracy for specific time points.
Data Source
AI summary
A request to obtain an identified content item is received. It is determined that the identified content item is stored in a plurality of locations. It is determined to obtain the identified content item from a first storage location storing a first serialized representation of a file system snapshot that includes the identified content item and a second storage location storing a second serialized representation of the file system snapshot that includes the identified content item based on available resources associated with the plurality of locations. The identified content item is extracted from the first serialized representation at the first storage location and from the second serialized representation at the second storage location including building a stubbed tree data structure using the first serialized representation and the second serialized representation. The extracted identified content item is provided using the stubbed tree data structure.


