File System Version Set Infrastructure for Snapshot Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional file systems face inefficiencies when managing large numbers of data objects and their snapshots, leading to exorbitant resource usage and operational challenges.

Innovation Solution

The implementation of version sets, where groups of related files are organized into snapshot trees with a version set database that stores identifiers for each file, allowing for efficient lookup and management of block-sharing relationships, thereby reducing the scope of files that need to be checked for operations like block movement and deletion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional file systems manage large numbers of data objects and snapshots, then the system can serve more data objects, but the resource usage and operational complexity becomes exorbitant

Engineering Contradiction:
Improvenumber of data objects servedVSAvoidfile system management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the file system into version sets, where each version set contains a primary object and its snapshots. This segmentation allows the system to manage thousands of files by organizing them into smaller, related groups, reducing the operational complexity while maintaining the ability to serve large numbers of data objects

Inventive Principle:
Principle #1Segmentation

2Reliability

If conventional file systems check all files for block-sharing relationships, then block sharing can be maintained, but the operation time and resource requirements increase significantly

Engineering Contradiction:
Improveblock sharing correctnessVSAvoidfile system operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the file system into version sets, where each version set contains a primary object and its snapshots. This segmentation allows the system to manage thousands of files by organizing them into smaller, related groups, reducing the operational complexity while maintaining the ability to serve large numbers of data objects

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by restricting block-sharing checks to only files within the same version set. Since snapshots within a version set are the only ones that can share blocks with their primary object, the system checks only relevant local groups rather than all files globally, maintaining correctness while reducing operation time

Inventive Principle:
Principle #3Local quality

3Productivity

If version sets are implemented to group related files, then file system operation efficiency improves, but the device structure becomes more complex

Engineering Contradiction:
Improvefile system operation efficiencyVSAvoidfile system structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The version set database serves multiple functions: it stores the mapping between files and version sets, enables efficient lookup for block-sharing operations, and provides the basis for snapshot management. This multi-functionality justifies the added structural complexity by consolidating multiple management tasks into a single unified structure

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

Data Source

PatentUS9778996B1File system version set infrastructure
Publication Date: 2017.10.03 EMC IP HLDG CO LLC
  • US9778996B1 patent drawing
  • US9778996B1 patent drawing
  • US9778996B1 patent drawing

AI summary

A technique for managing file systems assigns groups of related files in a file system to respective version sets. Each version set includes all files of a file system that are related to one another by one or more snapshot operations. The technique provides a version set database, which stores, in connection with each version set, an identifier of each file that belongs to the respective version set. In an example, file system operations that require information about block sharing can perform lookup operations on the version set database to narrow the scope of files that are candidates for block sharing to those of a particular version set.