Augmented Directory Hash for Parallel File System Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional file system operations, such as those performed by utilities like find, tar, and rsync, face inefficiencies due to dependencies between file operations, which limit parallelism and require sequential processing, especially in directory structures, and sorting by pathnames is slow and does not fully account for all dependencies.

Innovation Solution

Generating numeric values from file pathnames based on depth and hash values of directories to schedule operations effectively, allowing for maximum parallelism by clustering operations with the same dependencies on the same node and resolving dependencies through these values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If file operations are performed in predefined sequential order (top-down, bottom-up, breadth-first, or depth-first), then dependencies between operations are resolved, but parallelism is limited and processing efficiency deteriorates

Engineering Contradiction:
Improvedependency resolutionVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent transforms file pathnames into numeric values by encoding directory depth and hash values, enabling operations to be scheduled based on numeric comparison rather than string-based pathname traversal. This parameter transformation allows operations to be ordered and parallelized efficiently while maintaining dependency constraints.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent performs preliminary encoding of file pathnames into numeric values before scheduling operations. This preprocessing step captures directory depth and hierarchical relationships in advance, allowing the scheduler to determine operation order and parallelism opportunities without during-execution complexity.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If sorting is performed by pathnames to resolve dependencies, then operation ordering is achieved, but processing speed deteriorates due to slow string sorting

Engineering Contradiction:
Improveoperation orderingVSAvoidsorting speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent converts pathname strings into numeric values for sorting purposes. By encoding the directory depth as an integer component and combining it with hash values, the system achieves fast numeric sorting while preserving the hierarchical ordering information that would otherwise require slow lexicographic string comparison.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If operations are parallelized to improve processing speed, then productivity increases, but conflicting updates may occur due to unresolved dependencies

Engineering Contradiction:
ImproveparallelismVSAvoidconflict avoidance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The numeric value encoding separates the depth component from the hash component, enabling the scheduler to identify operations at the same hierarchical level that can safely execute in parallel. Operations with different depth values are ordered sequentially to prevent conflicts, while operations with identical numeric values can be parallelized safely.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10083182B2Augmented directory hash for efficient file system operations and data management
Publication Date: 2018.09.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10083182B2 patent drawing
  • US10083182B2 patent drawing
  • US10083182B2 patent drawing

AI summary

Embodiments relate to scheduling operations to perform on objects. A method for scheduling operations to perform on objects is provided. The method identifies a plurality of operations to perform on a plurality of objects each having at least one attribute. At least one of the operations has scheduling dependency on another operation. The method generates a numeric value for each of the objects from the attribute of the object. The method schedules the operations to perform on the objects based on the numeric values of the objects and the scheduling dependency.