Snapshot Volume Space Accounting via Dual Counters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Accurate space accounting in data storage systems is challenging due to data page sharing among snapshot volumes and their parent volumes, leading to difficulties in deleting or purging snapshot volumes without affecting storage space management.
Innovation Solution
Maintaining two counters for each data volume: SnapOwnedCount to track data pages owned by a snapshot volume and UnsharedWithParentCount to track data pages unshared with its parent volume, allowing for precise tracking and deletion of snapshot volumes while maintaining accurate space accounting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If snapshot volumes share data pages with parent volumes to reduce storage allocation, then storage space efficiency is improved, but accurate space accounting and deletion management become difficult
Solution Approach 1:
The patent segments the tracking of data pages into two distinct counters: SnapOwnedCount (tracking pages owned by snapshot volumes) and UnsharedWithParentCount (tracking pages unique to snapshots). This segmentation allows precise measurement of shared versus unshared pages, resolving the contradiction between space efficiency and accounting accuracy.
Solution Approach 2:
The patent introduces intermediary metadata structures (inode modifications, mapping hierarchy with owner volume ID attributes) that mediate between the shared data pages and the accounting system. These intermediaries enable accurate tracking of ownership relationships without requiring separate physical storage for each snapshot's accounting information.
2Quantity of substance
If snapshot volumes share data pages with parent volumes, then storage allocation is reduced, but deletion of snapshot volumes may inadvertently affect parent volume data
Solution Approach 1:
By segmenting the deletion logic into two phases—first checking SnapOwnedCount to identify snapshot-owned pages, then checking UnsharedWithParentCount to identify safe-to-delete pages—the patent ensures that deletion operations only remove pages that are truly unique to the snapshot, preventing accidental damage to parent volume data.
Solution Approach 2:
The patent implements feedback mechanisms where the accounting counters continuously monitor the state of data page ownership. Before deletion, the system queries these counters to receive feedback on which pages can be safely removed, ensuring reliable deletion operations that respect the shared storage architecture.
3Quantity of substance
If multiple snapshot volumes are created in a sequence with data page sharing, then storage efficiency is improved, but tracking owned versus unshared pages becomes complex
Solution Approach 1:
The patent divides the tracking mechanism into two independent counters (SnapOwnedCount and UnsharedWithParentCount) rather than using a single complex tracking system. This segmentation simplifies the logic: SnapOwnedCount tracks all pages ever written to the snapshot, while UnsharedWithParentCount tracks only the subset unique to the snapshot, making the overall system more manageable.
Solution Approach 2:
The patent uses copying of ownership information through the mapping hierarchy, where each data page entry stores an owner volume ID attribute. This copying approach allows multiple snapshots to reference the same physical pages with different ownership metadata, enabling efficient tracking without duplicating the entire page content or complex relationship structures.
Data Source
AI summary
Techniques for tracking pages that are unshared among snapshot volumes and their parent volume in a volume family. The techniques include maintaining a first counter that tracks a first number (“SnapOwnedCount”) of pages among a total number of pages written to a volume that were overwritten in the immediate sequential next volume in the same branch as the volume, and a second counter that tracks a second number (“UnsharedWithParentCount”) of pages among the total number of pages written to the volume that were overwritten in any sequential next volume in the same branch as the volume. By maintaining, for each volume in a volume family, a first counter and a second counter for tracking the SnapOwnedCount and the UnsharedWithParentCount, respectively, data storage recovery can be performed more effectively, allowing selected volumes and/or portions thereof to be deleted while maintaining accurate space accounting information.


