Recursive Multi-threaded File System Scanner for Metadata Serialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional file systems face significant performance degradation as they grow larger, leading to unacceptably long times for file system operations, making it impractical to retrieve metadata from extremely large shared disk file systems within a relevant time frame.

Innovation Solution

A recursive, multi-threaded file system scanner that serializes metadata, allowing for faster parsing and querying of file system metadata, enabling efficient metadata acquisition and reducing the time required to understand file system structures and hierarchies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If conventional file system scanning methods are used, then the system can handle traditional file system sizes, but the operation time becomes unacceptably long (hours, days, or weeks) for extremely large file systems with billions of files

Engineering Contradiction:
Improvemetadata retrieval timeVSAvoidmetadata scanning speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent divides the file system metadata scanning task into multiple segments by creating separate worker threads that can scan different portions of the file system simultaneously. The metadata exoskeleton is partitioned across multiple threads, allowing parallel processing of what would otherwise be a sequential operation, thereby dramatically reducing the time required to scan extremely large file systems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-building and caching the metadata exoskeleton structure before actual metadata retrieval operations. By pre-organizing the metadata hierarchy and making it accessible through cached structures, the system eliminates the need to traverse the entire file system tree during operational queries, significantly reducing retrieval time from hours to minutes or seconds.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the file system metadata is traversed completely to ensure accuracy, then comprehensive metadata is acquired, but the process takes hours, days, or weeks which makes the metadata out-of-date by the time it is retrieved

Engineering Contradiction:
Improvemetadata completenessVSAvoidmetadata freshness
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts only the essential metadata structure (the exoskeleton) that is needed for most operations, rather than traversing and retrieving complete metadata for all files. By extracting and caching just the hierarchical structure and essential attributes, the system achieves comprehensive coverage of the file system organization without the time penalty of detailed inspection of every file, maintaining both reliability and freshness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary traversal to build the metadata exoskeleton structure in advance, caching this structural information for rapid access. This preliminary action separates the structure-building phase from the query phase, allowing the metadata hierarchy to be established once and then queried efficiently multiple times without re-traversing the entire file system, thus maintaining metadata freshness while ensuring structural completeness.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a single-threaded approach is used to scan file system metadata, then the implementation is simpler, but the scanning speed is insufficient for extremely large file systems

Engineering Contradiction:
Improvemetadata scanning speedVSAvoidscanner architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the metadata scanning operation into multiple independent worker threads, each handling a portion of the file system hierarchy. This segmentation enables parallel execution across multiple CPU cores, increasing scanning throughput proportionally to the number of threads. The complexity introduced by multi-threading is justified by the exponential increase in scanning capability for extremely large file systems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional sequential scanning approach to a multi-dimensional parallel processing model by introducing thread hierarchy levels and concurrent execution paths. This dimensional change allows the system to exploit both temporal parallelism (multiple threads executing simultaneously) and spatial parallelism (different portions of the file system scanned by different threads), achieving scalability that single-threaded approaches cannot match.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10545915B2Recursive multi-threaded file system scanner for serializing file system metadata exoskeleton
Publication Date: 2020.01.28 QUANTUM CORP
  • US10545915B2 patent drawing
  • US10545915B2 patent drawing
  • US10545915B2 patent drawing

AI summary

Methods, apparatus, and other embodiments facilitate discovering and serializing metadata for a file system. After initializing or accessing a serialization data structure, recursive search threads that begin at a selected location in the file system are spawned. The threads analyzes the selected location in the file system, acquire metadata associated with the selected location in the file system, serialize the metadata associated with the selected location in the file system into the serialization data structure, and then selectively spawn additional recursive search threads. Additional recursive search threads may be spawned upon determining that the current recursive search thread has reached a branch point in a hierarchy of the file system. Different threads may perform different types of searches (e.g., depth-first breadth-first) and may operate in parallel. The serialization data structure may be persisted and surfaced in an object (e.g., JSON object) that can be queried or searched.