File Cloning via Shared Data Blocks and Metadata References
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face challenges in efficiently cloning and de-cloning files while maintaining data integrity and managing corruption risks, particularly in scenarios where both current and checkpoint versions of a filesystem may become corrupted, and important information may be lost or altered.
Innovation Solution
A file cloning mechanism that creates clones by sharing data and metadata blocks with the source file, allowing for quick cloning without copying user data blocks or metadata blocks initially, and implementing a de-cloning process to restructure objects and free up shared blocks, utilizing a data-stream-snapshot object and mutable clone objects within a filesystem.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional file copying is used to create file clones, then data redundancy is achieved, but storage space consumption increases significantly
Solution Approach 1:
The patent implements file cloning by creating clone objects that share data blocks with source files rather than copying all data. The clone object contains metadata pointing to the same physical data blocks as the source, achieving redundancy with minimal storage overhead. When data is modified, the system creates new data blocks only for changed portions while retaining shared blocks for unchanged data.
2Quantity of substance
If file cloning is implemented by sharing data blocks, then storage efficiency is improved, but data integrity management becomes more complex
Solution Approach 1:
The patent segments file data into discrete data blocks that can be independently managed and shared. Each clone object references specific data blocks by identifier, allowing granular control over which blocks are shared and which are independent. This segmentation simplifies integrity management by enabling block-level operations rather than whole-file operations.
Solution Approach 2:
The patent introduces an intermediary layer (the clone object metadata structure) that manages the relationship between clone objects and shared data blocks. This intermediary handles reference counting, block allocation, and integrity tracking, abstracting the complexity of shared storage management from the cloning operation itself.
3Productivity
If rapid cloning is achieved by avoiding data copying, then cloning speed is improved, but corruption risk increases when source and checkpoint versions both become corrupted
Solution Approach 1:
The patent performs preliminary actions by creating clone objects with references to source data blocks before any data modification occurs. The clone object is instantiated with metadata pointing to the source's data blocks, establishing the shared relationship in advance. This preliminary setup enables rapid cloning while maintaining integrity through the reference structure that tracks all shared blocks.
Data Source
AI summary
A file cloning mechanism allows for quickly creating copies (clones) of files within a filesystem, such as when a user makes a copy of a file. In exemplary embodiments, a clone of a source object is at least initially represented by a structure containing references to various elements of the source object (e.g., indirect onodes, direct onodes, and data blocks). Both read-only and mutable clones can be created. The source file and the clone initially share such elements and continue to share unmodified elements as changes are made to the source file or mutable clone. None of the user data blocks or the metadata blocks describing the data stream (i.e., the indirect/direct onodes) associated with the source file need to be copied at the time the clone is created. At appropriate times, cloned files may be “de-cloned.”


