Parallel Log-Structured File System Sparse Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing file systems are inefficient in storing sparse files, as they typically process them at the granularity of a file system block, leading to wasteful storage of empty blocks and inefficient data processing and transfer bandwidth.

Innovation Solution

A parallel log-structured file system is used to store sparse files by storing only the data portions and generating index entries with logical and physical offsets, allowing for efficient storage and restoration of holes, with additional efficiency gained by detecting write patterns and storing patterned index entries in a single directory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If existing file systems store sparse files at the granularity of a file system block, then storage allocation is simplified, but disk space is wasted and data processing bandwidth is inefficient

Engineering Contradiction:
Improvestorage allocation simplicityVSAvoiddisk space waste
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent segments the sparse file storage into two distinct components: a data file containing only actual data blocks and an index file containing metadata about data block locations and file holes. This segmentation allows the system to store only actual data without wasting space on empty blocks, while maintaining simplified storage allocation through the index structure that manages the segmented data blocks.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If existing file systems allocate blocks for sparse files, then data structure is simplified, but storage efficiency deteriorates

Engineering Contradiction:
Improvedata structure simplicityVSAvoidstorage efficiency
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent extracts the metadata information from the traditional block-based file structure and places it in a separate index file. This extraction allows the data file to contain only actual data blocks without empty blocks, improving storage efficiency. The index file independently manages the metadata, maintaining data structure simplicity while enabling efficient storage through the separation of data and metadata.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of operation

If existing file systems convert metadata to real blocks at runtime, then data access is simplified, but data processing bandwidth is reduced

Engineering Contradiction:
Improvedata access simplicityVSAvoiddata processing bandwidth
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and storing the locations of data blocks and file holes in the index file during file creation or data writing. This preliminary organization of metadata eliminates the need for complex runtime conversions, maintaining ease of data access while improving data processing bandwidth by reducing runtime overhead and enabling more efficient data retrieval operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9811545B1Storage of sparse files using parallel log-structured file system
Publication Date: 2017.11.07 EMC IP HLDG CO LLC
  • US9811545B1 patent drawing
  • US9811545B1 patent drawing
  • US9811545B1 patent drawing

AI summary

A sparse file is stored without holes by storing a data portion of the sparse file using a parallel log-structured file system; and generating an index entry for the data portion, the index entry comprising a logical offset, physical offset and length of the data portion. The holes can be restored to the sparse file upon a reading of the sparse file. The data portion can be stored at a logical end of the sparse file. Additional storage efficiency can optionally be achieved by (i) detecting a write pattern for a plurality of the data portions and generating a single patterned index entry for the plurality of the patterned data portions; and/or (ii) storing the patterned index entries for a plurality of the sparse files in a single directory, wherein each entry in the single directory comprises an identifier of a corresponding sparse file.