Writable Storage Volume Clones With Deferred Metadata Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing enterprise storage solutions incur significant overhead when generating writable clones of storage volumes due to the immediate need to update metadata for each storage block, which is time-consuming and dependent on the volume size, making the process inefficient.
Innovation Solution
Implement a mechanism that postpones metadata updates for storage blocks until they are modified or deleted, incrementing a global volume count at clone generation and performing metadata updates as part of these operations, reducing the overhead associated with generating clones to an order 1 operation without additional read or write operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If metadata updates are performed immediately during clone generation, then data consistency is maintained, but the time required for clone creation increases significantly
Solution Approach 1:
The patent applies preliminary action by pre-incrementing the global volume count at the time of clone generation before any metadata updates occur. This allows the system to establish the clone's existence and reference count early, then defer the actual metadata updates to a later time when storage blocks are modified or deleted, thus reducing clone creation time while maintaining data consistency through the preliminary establishment of reference integrity.
Solution Approach 2:
The patent implements dynamics by making the metadata update process flexible and adaptive rather than static and immediate. The system dynamically determines when metadata updates should occur based on subsequent storage operations - updates are postponed until storage blocks are actually modified or deleted, allowing the clone creation process to be fast initially while ensuring metadata consistency is maintained at appropriate moments during the volume's lifecycle.
2Productivity
If metadata updates are deferred until storage blocks are modified or deleted, then clone generation overhead is reduced, but tracking multiple volume references becomes more complex
Solution Approach 1:
The patent introduces an intermediary mechanism - the global volume count - that mediates between clone generation and metadata updates. This single global counter serves as an intermediary data structure that tracks the number of volumes referencing storage blocks without requiring immediate updates to each individual block's metadata. The global volume count acts as a intermediary layer that simplifies reference tracking while enabling deferred updates, thus reducing clone generation overhead while managing complexity through a centralized tracking approach.
3Device complexity
If the global volume count is incremented at clone generation, then reference tracking is simplified, but additional write operations are required
Solution Approach 1:
The patent applies merging by combining the global volume count increment operation with the clone generation process itself. Rather than treating the increment as a separate overhead operation, it is integrated into the clone creation flow, allowing the system to track references efficiently while minimizing additional I/O. The global volume count update is merged with other initialization operations during clone generation, and subsequent metadata updates are merged with storage block modification operations, thus reducing the relative impact of I/O operations while maintaining simplified reference tracking.
Data Source
AI summary
A processing device generates a clone of a first volume of storage, the first volume comprising a plurality of storage blocks, wherein the clone is a second volume that is writable and that references the plurality of storage blocks. The processing device increments a global volume count that represents a number of volumes. For each storage block of the plurality of storage blocks, the processing device postpones an update to metadata of the storage block until an event that causes any volume to stop referencing the storage block, wherein the metadata indicates volumes that reference the storage block.


