Parallel Log-Structured File System for Small File Aggregation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Parallel storage systems face performance degradation due to serialization and non-sequential disk access patterns when multiple processes concurrently write small files to a shared storage system, leading to increased latency and reduced efficiency.

Innovation Solution

Implementing a Parallel Log-Structured File System (PLFS) as a middleware virtual file system to aggregate multiple small files into a single large file, using metadata to manage the layout and facilitate sequential writes, thereby reducing overhead and improving disk access efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processes concurrently create small files in a shared directory, then each process can independently write data, but serialization of directory locking causes significant performance degradation

Engineering Contradiction:
Improveconcurrent file creation rateVSAvoididle waiting time due to serialization
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple small files into a single aggregate file, allowing multiple processes to write concurrently without directory locking serialization. Instead of creating separate files that require coordinated locking, processes write to different regions of the same file using metadata-guided offsets, eliminating the bottleneck while maintaining data organization.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a metadata structure as an intermediary between the file system and stored data. This metadata layer manages file offsets, lengths, and aggregation information, allowing concurrent writes without direct file system locking. The metadata acts as a mediator that coordinates access without requiring serialization of the underlying storage operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple small files are concurrently written to disk, then data from multiple processes can be stored, but non-sequential access patterns cause frequent disk seeks and performance degradation

Engineering Contradiction:
Improvedata storage throughputVSAvoiddisk access speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent performs preliminary organization of data into an aggregate file structure before writing to disk. By pre-calculating offsets and arranging data in sequential regions within the aggregate file, the system prepares the data layout in advance, eliminating the need for frequent disk seeks during the writing process and improving overall storage throughput.

Inventive Principle:
Principle #10Preliminary action

3Speed

If each process creates a single file with sequential writes, then disk access efficiency is improved, but managing multiple processes' data in separate files increases metadata overhead and disk space consumption

Engineering Contradiction:
Improvedisk access speedVSAvoidmetadata management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent combines multiple process data streams into a single aggregate file, reducing the number of file metadata structures that need to be managed. Instead of maintaining separate file headers, inodes, and directory entries for each process, the system uses a single aggregate file with an organized internal structure, simplifying metadata management while preserving data separation through offset tracking.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8825652B1Small file aggregation in a parallel computing system
Publication Date: 2014.09.02 TRIAD NATIONAL SECURITY LLC
  • US8825652B1 patent drawing
  • US8825652B1 patent drawing
  • US8825652B1 patent drawing

AI summary

Techniques are provided for small file aggregation in a parallel computing system. An exemplary method for storing a plurality of files generated by a plurality of processes in a parallel computing system comprises aggregating the plurality of files into a single aggregated file; and generating metadata for the single aggregated file. The metadata comprises an offset and a length of each of the plurality of files in the single aggregated file. The metadata can be used to unpack one or more of the files from the single aggregated file.