File System Snapshot Reference Count Deferral

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file system snapshot techniques inefficiently manage storage by creating unnecessary duplicate data blocks and face challenges in determining when blocks can be reallocated, especially in non-linear version chains with branch files.

Innovation Solution

Implementing a method that uses reference counts to track the number of files sharing data blocks, deferring updates until necessary, and employing a read-only bit to facilitate deferred reference count updates and block ownership management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If duplicate copies of data blocks are created for every snapshot, then snapshot integrity is ensured, but storage capacity is unnecessarily consumed

Engineering Contradiction:
Improvesnapshot integrityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Multiple files (production files and snapshots) share the same data blocks on disk by using common inode structures and block pointers. The system merges storage resources by allowing different files to reference identical physical blocks, eliminating redundant data storage while maintaining file integrity through shared block ownership.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Data blocks serve multiple functions simultaneously by being shared across production files and snapshots. A single data block can be referenced by multiple inodes, allowing the same physical storage to fulfill multiple logical file requirements, thereby improving storage utilization without compromising data integrity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If reference counts are updated immediately when snapshots are created, then block ownership is accurately tracked, but processing time increases

Engineering Contradiction:
Improveblock ownership trackingVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary setup by creating shared inode structures and block pointers without immediately updating all reference counts. The reference count updates are deferred to a later time when the file system is in a more stable state, reducing the impact on snapshot creation performance while still maintaining accurate tracking.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The reference counting mechanism is made dynamic by allowing deferred updates rather than immediate updates. The system adapts the timing of reference count modifications based on system state, updating them asynchronously after snapshot creation to minimize performance impact while ensuring eventual consistency.

Inventive Principle:
Principle #15Dynamics

3Reliability

If all data blocks are copied when creating a snapshot, then the snapshot is completely independent, but storage efficiency decreases

Engineering Contradiction:
Improvesnapshot independenceVSAvoidstorage efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The snapshot file system merges with the production file system by sharing common data blocks through shared inodes. Instead of creating completely independent copies, the system combines storage resources allowing snapshots and production files to coexist with shared underlying data, improving efficiency while maintaining snapshot functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system creates logical copies of inode structures and block pointers for snapshots without physically copying the actual data blocks. This selective copying approach creates sufficient independence for snapshot operations while avoiding redundant data storage by sharing the physical block layer.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8117160B1Methods and apparatus for creating point in time copies in a file system using reference counts
Publication Date: 2012.02.14 EMC IP HLDG CO LLC
  • US8117160B1 patent drawing
  • US8117160B1 patent drawing
  • US8117160B1 patent drawing

AI summary

Embodiments of the invention relate to maintaining reference counts in a file system to track when a block is available to be freed. When a snapshot copy of a file is created, rather than copying all the blocks of the file for the snapshot copy, the snapshot inode is given pointers to the blocks of the file. Rather than updating the reference counts for all these blocks to indicate that they are now in use by more than one file, the update of reference counts for at least some of these blocks may be deferred until a later time.