Parallel Filesystem Tree Traversal via Dynamic Workload Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traversing extremely large filesystems imposes a heavy processing load due to the need for directory traversal, making existing methods inefficient for large volumes of data.

Innovation Solution

Implementing a parallel Depth-first search (DFS) method that distributes the traversal of a filesystem tree among multiple compute nodes, allowing for accelerated traversal and workload balancing without prior knowledge of the directory tree structure, using a shared memory system to reassess and redistribute subdirectories among nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single processing node traverses the entire filesystem tree sequentially, then the traversal is simple to implement, but the processing time becomes excessively long for extremely large filesystems

Engineering Contradiction:
Improvetraversal speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The filesystem tree traversal is divided into multiple independent sub-tasks that can be processed in parallel. Each processing node handles a portion of the directory tree, allowing simultaneous traversal of different branches. This segmentation enables the system to process extremely large filesystems by distributing the traversal workload across multiple nodes, thereby increasing traversal speed without requiring complex coordination mechanisms.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If multiple compute nodes are used for parallel traversal, then the traversal time is reduced, but the communication overhead and coordination complexity increase

Engineering Contradiction:
Improvetraversal timeVSAvoidcommunication complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Each processing node autonomously manages its own traversal tasks and dynamically requests additional subdirectories from the shared memory system when its local queue is exhausted. This self-service mechanism eliminates the need for centralized task assignment and reduces communication overhead, as nodes independently make decisions about their workload without requiring constant coordination with other nodes or a central controller.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A shared memory system acts as an intermediary between processing nodes, storing the filesystem tree structure and enabling nodes to independently retrieve and process subdirectories. This intermediary approach allows parallel traversal by providing a common data source that all nodes can access without direct node-to-node communication, thereby reducing communication complexity while maintaining parallel processing efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the workload is statically distributed among compute nodes, then the implementation is straightforward, but load balancing is poor when the directory tree structure is unknown or unbalanced

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidworkload distribution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The workload distribution is made dynamic through a shared memory system that allows processing nodes to continuously monitor and adjust their task queues. When a node completes its current subdirectories, it dynamically requests additional work from the shared memory, ensuring that workload is redistributed based on actual processing capacity and remaining tree structure. This dynamic approach automatically adapts to unbalanced or unknown directory structures, maintaining optimal load balancing without requiring prior knowledge of the filesystem topology.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12026131B2Parallel traversal of a filesystem tree
Publication Date: 2024.07.02 VAST DATA LTD
  • US12026131B2 patent drawing
  • US12026131B2 patent drawing
  • US12026131B2 patent drawing

AI summary

A method for traversal of a filesystem tree, the method may include traversing the filesystem tree by multiple processing entities of a set of processing entities that belong to a storage system; wherein the traversing comprises multiple iterations of on-the fly allocation of workload, associated with parallel traversing of the filesystem tree, among the multiple processing entities; wherein a current iteration of the on the fly allocation is (a) executed by a current group of processing entities that are currently assigned to traverse current nodes of the filesystem tree, and (b) comprises re-allocating by the current group, a traversal task for traversing one or more child nodes of each of the current nodes of the filesystem tree, to a next group of processing entities; wherein the current group and the next group belong to the set.