File System Snapshot Management via Transaction IDs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for managing file system snapshots are time-consuming and wasteful of computational resources as they rely on reference counts, which become inefficient with increasingly complex file systems.

Innovation Solution

A file system manages snapshot identifiers within an object map, using a current transaction ID to generate new snapshots without requiring reference counts, allowing for efficient tracking and management of snapshots by associating snapshot IDs with mapping entries and updating transaction IDs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If reference counts are used to track nodes in file system snapshots, then snapshot management can be implemented, but the system becomes time-consuming and wasteful of computational resources as the file system grows increasingly complex

Engineering Contradiction:
Improvesnapshot management capabilityVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the reference counting mechanism from the snapshot management system and replaces it with a transaction ID-based approach. Instead of tracking each node's reference count across snapshots, the system uses transaction IDs to identify the state of the file system at snapshot points, eliminating the computational overhead of maintaining and checking reference counts while preserving the ability to manage snapshots effectively

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the fundamental parameter used for snapshot tracking from reference counts (numerical counters) to transaction IDs (sequential identifiers). This parameter change transforms the snapshot management approach from an active tracking system that requires continuous updates and checks to a passive identification system that simply records the transaction state at snapshot points, significantly improving computational efficiency

Inventive Principle:
Principle #35Parameter changes

2Loss of information

If reference counts are maintained for each node, then node referencing can be tracked, but computational resources are wasted and performance decreases as the file system grows

Engineering Contradiction:
Improvenode referencing trackingVSAvoidcomputational resource consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The transaction ID system is self-service in that it automatically provides snapshot identification without requiring additional tracking mechanisms. Each transaction ID inherently encodes the snapshot state, eliminating the need for separate reference count maintenance and reducing computational resource consumption while preserving complete node referencing information

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10509767B2Systems and methods for managing snapshots of a file system volume
Publication Date: 2019.12.17 APPLE INC
  • US10509767B2 patent drawing
  • US10509767B2 patent drawing
  • US10509767B2 patent drawing

AI summary

The embodiments set forth techniques for generating snapshots of file system volumes without requiring the implementation of reference counts. A file system can manage snapshot identifiers (IDs) within an object map that corresponds to the file system volume, where each snapshot ID represents a different existing snapshot of the file system volume. A new snapshot can be generated simply by (1) establishing a new snapshot ID based on a current transaction ID managed for the file system volume, and (2) closing the current transaction ID and generating a new current transaction ID. In turn, the new current transaction ID is assigned as a transaction ID within mapping entries that are established/updated after the snapshot is established. In this manner, the transaction ID assigned to each mapping entry can be analyzed against the snapshot IDs to determine the snapshots (if any) to which the mapping entry corresponds.