Dynamic Block Sizing for Parallel File System Metadata Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel storage systems face challenges in fast shared writing due to data integrity and serialization issues, leading to excessive metadata creation in log structured virtual file systems.

Innovation Solution

The method involves dynamically determining a block size for data storage by dividing the total data by the number of parallel processes and redistributing data among processes to achieve uniform block sizes, reducing metadata and optimizing data movement within a log-structured file system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If log structured virtual parallel file systems are used to improve shared writing speed, then writing speed is improved, but metadata overhead increases

Engineering Contradiction:
Improveshared writing speedVSAvoidmetadata overhead
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the shared file writing process into distinct phases: a serialization phase for metadata updates and a parallel phase for data writing. This segmentation allows multiple processes to write data simultaneously while metadata is updated in a controlled manner, reducing the total metadata overhead while maintaining high writing speeds.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-allocation of metadata structures and pre-synchronization of block boundaries before the actual parallel writing operation. This preparation ensures that during the parallel write phase, processes can write directly without generating excessive metadata, thus improving speed while controlling metadata overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If block boundaries and data integrity constraints are enforced, then data integrity is improved, but parallel writing speed deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidparallel writing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent dynamically adjusts block boundaries during the parallel writing process based on actual data distribution and process completion status. Instead of enforcing rigid fixed block boundaries, the system adapts block sizes and boundaries in real-time, maintaining data integrity through controlled serialization only when necessary, thus preserving parallel writing speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent maintains continuous parallel writing action by allowing processes to write data continuously across block boundaries with deferred integrity checks. Data integrity is ensured through post-write verification and atomic commit operations, rather than interrupting the parallel writing flow with frequent boundary checks, thus maintaining high writing speed while ensuring reliability.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9183211B1Cooperative storage of shared files in a parallel computing system with dynamic block size
Publication Date: 2015.11.10 TRIAD NATIONAL SECURITY LLC
  • US9183211B1 patent drawing
  • US9183211B1 patent drawing
  • US9183211B1 patent drawing

AI summary

Improved techniques are provided for parallel writing of data to a shared object in a parallel computing system. A method is provided for storing data generated by a plurality of parallel processes to a shared object in a parallel computing system. The method is performed by at least one of the processes and comprises: dynamically determining a block size for storing the data; exchanging a determined amount of the data with at least one additional process to achieve a block of the data having the dynamically determined block size; and writing the block of the data having the dynamically determined block size to a file system. The determined block size comprises, e.g., a total amount of the data to be stored divided by the number of parallel processes. The file system comprises, for example, a log structured virtual parallel file system, such as a Parallel Log-Structured File System (PLFS).