Reverse Snapshot Deletion Optimizes I/O Locality
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional methods for deleting snapshots in a snapshot chain are inefficient due to poor locality of data blocks, leading to increased input/output (I/O) overhead and resource utilization, as they do not effectively distinguish between shared and exclusively owned data blocks.
Innovation Solution
The proposed solution involves a reverse deletion approach, where snapshots are deleted in the order of most recently created snapshots, leveraging the two-layer snapshot extent mapping architecture and middle map extents to determine ownership and exploit temporal locality, thereby reducing I/O costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If traditional sequential deletion method is used (deleting snapshots from oldest to newest), then snapshots are deleted in chronological order, but I/O overhead increases and performance deteriorates due to poor locality of data blocks
Solution Approach 1:
The patent inverts the traditional deletion order by deleting snapshots from newest to oldest (reverse chronological order) instead of oldest to newest. This inversion exploits temporal locality where recently created snapshots are more likely to reference recently written data blocks, improving I/O efficiency and reducing performance overhead during the deletion process.
Solution Approach 2:
The patent performs preliminary identification of data block ownership before deletion by using the two-layer mapping architecture to determine which data blocks are exclusively owned by each snapshot. This preliminary action allows the system to efficiently identify and delete only the necessary data blocks without unnecessary I/O operations on shared blocks.
2Device complexity
If traditional deletion method is used, then processing is simpler in terms of logic, but resource utilization increases due to poor locality of data blocks
Solution Approach 1:
The patent introduces dynamic adaptation by using the two-layer snapshot extent mapping architecture to dynamically determine data block ownership based on temporal relationships. The system adapts the deletion process to exploit temporal locality patterns, making the deletion logic more complex but significantly reducing compute resource utilization through optimized I/O patterns.
3Loss of time
If traditional deletion method is used, then snapshots are deleted in chronological order, but I/O costs increase due to inherited data blocks having poor spatial locality
Solution Approach 1:
The patent inverts the deletion sequence to process snapshots from newest to oldest, which improves spatial locality of data blocks being deleted. By deleting newer snapshots first, the system accesses data blocks that are more likely to be physically close in storage, improving I/O throughput and reducing deletion time.
Solution Approach 2:
The patent extracts and processes only the data blocks that are exclusively owned by each snapshot being deleted, separating them from shared data blocks. This extraction approach using the two-layer mapping architecture ensures that only necessary blocks are accessed and deleted, improving I/O throughput by avoiding unnecessary reads of shared blocks.
Data Source
AI summary
A method for the reverse deletion of a plurality of snapshots in a chain of snapshots is provided. The method includes in reverse order, starting from a latest snapshot in time to an earliest snapshot in time of the plurality of snapshots: identifying at least one of a first set of one or more data blocks of a snapshot that are shared with an earlier snapshot in time in the chain of snapshots or a second set of one or more data blocks of the snapshot that are owned by the snapshot and processing the second set of one or more data blocks and skipping processing the first set of one or more data blocks, wherein processing the second set of one or more data blocks comprises performing one or more actions to maintain and/or delete data blocks of the second set of one or more data blocks.


