Epoch-Based Snapshot Chunk Retention in Distributed File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed file systems, especially in cloud-based object stores, file segments or 'chunks' may be deleted prematurely due to lack of references, even if they are still associated with snapshots or backups, leading to data loss and inefficiencies in management.

Innovation Solution

Implementing an epoch-based management system that assigns monotonically increasing identifiers to file segments, using an epoch table to track segments created before or after snapshots, and a 'death' table to determine when segments are no longer referenced, ensuring retention of chunks associated with still-stored snapshots.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If reference count is used to manage file segments, then deletion efficiency is improved, but data reliability deteriorates due to premature deletion of segments still needed by snapshots

Engineering Contradiction:
Improvedeletion efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the reference counting mechanism into two independent components: a reference count for live file system objects and a separate snapshot reference mechanism. This allows the system to track and manage segments referenced by snapshots independently from those referenced by live files, preventing premature deletion while maintaining efficient deletion of truly unreferenced segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (snapshot reference tracking) that mediates between the reference count system and the segment deletion process. This intermediary layer ensures that segments are not deleted based solely on reference count, but only after verifying they are not needed by any retained snapshots, thus resolving the conflict between deletion efficiency and data integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If segments are retained for snapshot compatibility, then data reliability is improved, but storage resource utilization deteriorates due to retention of unnecessary segments

Engineering Contradiction:
Improvesnapshot compatibilityVSAvoidstorage resource utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the parameter used for deletion decisions from a simple reference count to a compound parameter that considers both reference count and snapshot retention status. This parameter change enables the system to make more accurate decisions about which segments to retain and which can be safely deleted, optimizing storage resource utilization while maintaining snapshot compatibility.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements a mechanism to discard (delete) segments that are no longer needed by either live files or snapshots, while recovering (retaining) only those segments that are still referenced. This selective discarding and recovering process ensures that storage resources are not wasted on unnecessary segments while maintaining the reliability needed for snapshot compatibility.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10983868B2Epoch based snapshot summary
Publication Date: 2021.04.20 EMC IP HLDG CO LLC
  • US10983868B2 patent drawing
  • US10983868B2 patent drawing
  • US10983868B2 patent drawing

AI summary

Epoch-based management of file system data is disclosed. In various embodiments, for each of a plurality of snapshots, data that associates with the snapshot a corresponding last chunk identifier assigned as of a time at which the snapshot is or was created is stored a in a first data structure. For each of a plurality of chunks of file system data no longer referenced by any live file system object, an epoch identifier associated with an epoch in which the chunk became no longer referenced by any live file system object is stored in a second data structure. A chunk identifier and associated epoch comprising an entry in the second data structure are compared with one or more entries in the first data structure to determine whether a chunk associated with the chunk identifier is associated with a snapshot that continues to be retained.