File System Change Detection via Snapshot Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for determining changes in a file system are inefficient, requiring software applications to traverse directories randomly and perform multiple reads, leading to time-consuming data access due to non-sequential data placement.

Innovation Solution

An application programming interface (API) receives requests for changes in a file system within a time interval, determines changed metadata containers, buffers and transmits their identifiers to the host, and packages them for readability, allowing for efficient identification of modified, added, or accessed files or directories.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If software application performs tree-walk process to determine changes in file system, then changes can be identified, but data access time increases due to random traversal and non-sequential data placement

Engineering Contradiction:
Improvechange detection accuracyVSAvoiddata access time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system pre-creates snapshots of the file system at different points in time, storing them in sequential order on the disk. When change detection is needed, the system compares these pre-prepared snapshots directly without performing random tree-walk traversals, thus eliminating the time penalty while maintaining accurate change detection capability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of traversing the actual file system structure randomly to detect changes, the system creates and compares copies (snapshots) of the file system state at different times. These snapshots are stored sequentially and can be compared efficiently without random disk access, solving both the accuracy and time consumption problems

Inventive Principle:
Principle #26Copying

2Loss of information

If software application performs multiple reads to determine changes in file system, then complete change information can be obtained, but processing time and system resource consumption increase

Engineering Contradiction:
Improvechange information completenessVSAvoidchange detection speed
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system performs preliminary actions by creating and storing snapshots of the file system at various points in time. These snapshots capture the complete state of the file system including all file metadata and content references. When change detection is required, the system simply compares these pre-captured states, obtaining complete change information without needing to perform multiple sequential reads of the actual file system

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of the file system state (snapshots) that can be compared independently of the live file system. This copying approach allows complete change information to be extracted by comparing snapshot copies, eliminating the need for multiple reads of the production file system and thus improving productivity while maintaining information completeness

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7904466B1Presenting differences in a file system
Publication Date: 2011.03.08 NETAPP INC
  • US7904466B1 patent drawing
  • US7904466B1 patent drawing
  • US7904466B1 patent drawing

AI summary

An embodiment of the invention provides an apparatus and method for presenting differences in a file system. In an embodiment, an application programming interface receives a request from a host, where the request is for a listing of changes in the file system within a time interval. A comparison unit determines each metadata container that has changed in the file system within the time interval. The application programming interface buffers at least one identifier that corresponds to a metadata container that has changed in the file system within the time interval. The application programming interface packages and transmits the at least one identifier to the host. The at least one identifier is readable on the host.