Metadata Snapshot Synchronization for Consistent Data Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional storage technologies using metadata-based search trees face challenges in data recovery due to susceptibility to data loss when roots are lost or corrupted, and manual recovery processes are time-consuming and inconsistent, as disparate trees independently updated across different storage blocks make it difficult to represent a system state accurately.
Innovation Solution
The solution involves generating snapshots of metadata-based system roots at regular intervals or upon specific events, using a snapshot component to record system states, and a garbage collection component that selects and preserves active data chunks by assigning sequence numbers, ensuring consistent data recovery through automated synchronization with user data states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual recovery procedures are used for corrupted metadata trees, then data can be recovered, but the process is time-consuming and inconsistent
Solution Approach 1:
The system creates periodic snapshots of metadata trees before corruption occurs. When corruption is detected, these pre-existing snapshots enable immediate recovery without manual intervention, resolving both the time loss and consistency issues by having recovery data ready in advance
Solution Approach 2:
The invention creates copies of metadata trees at specific points in time (snapshots). These copies are stored separately and can be used to restore corrupted trees, eliminating the need for manual recovery procedures and ensuring consistent restoration to known good states
2Reliability
If obsolete metadata roots are stored for weeks to prevent data loss, then data recovery is possible, but disparate independently updated trees cannot consistently represent system state
Solution Approach 1:
The system takes periodic snapshots of the entire metadata tree structure at specific points in time. Each snapshot captures a consistent system state, allowing recovery to any point in time while maintaining state consistency, unlike storing disparate obsolete roots from independently updated trees
Solution Approach 2:
The invention segments the metadata storage into discrete snapshot points. Each snapshot is an independent, consistent representation of system state at a specific time. This segmentation allows selective restoration to any snapshot point, ensuring consistency without needing to store all intermediate obsolete tree versions
3Reliability
If manual procedures are used for data recovery across different search trees and storage blocks, then data can be recovered, but the process is complex and error-prone
Solution Approach 1:
The system automatically creates and stores snapshots of metadata trees at predetermined intervals. When corruption occurs, the recovery process automatically identifies and restores from the appropriate snapshot, eliminating complex manual procedures for coordinating recovery across multiple trees and storage blocks
Solution Approach 2:
Complete copies of metadata trees are created and stored at snapshot points. These copies contain all necessary information to restore any corrupted tree, simplifying recovery to a single operation of restoring from the appropriate snapshot copy rather than manually reconstructing from disparate sources
Data Source
AI summary
Synchronization of metadata-based system snapshots with a state of user data is presented herein. A snapshot component can generate, at respective times, snapshots of roots of respective trees of a system—the respective trees comprising metadata representing respective states of the system corresponding, via the snapshots, to the respective times. Further, a garbage collection component can select a snapshot of the snapshots of the roots that is older than remaining snapshots of the snapshots of the roots, and determine, using an object table of the snapshot referencing data chunks comprising respective objects of the system, whether a data chunk of the data chunks comprises an inactive object of the respective objects to facilitate a selection of the data chunk as a garbage collection (GC) candidate for deletion via a GC procedure.


