Segment Pre-allocation for Erasure Coded Storage Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems face inefficiencies in write operations due to the need for partial stripe writes, which result in high write amplification and performance issues, especially when using erasure coding schemes like RAID-6, as they require significant NVRAM for caching or complex management of metadata with log-structured file systems.

Innovation Solution

Implementing a distributed storage system with two tiers of physical storage, using a LFS disk layout for capacity objects and an overwrite-based file system for metadata objects, allowing for full stripe writes and avoiding the complexities of metadata management in log-structured systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If erasure coding is used for fault tolerance, then storage overhead is reduced compared to mirroring, but write operation efficiency deteriorates due to partial stripe writes requiring read-modify-write sequences

Engineering Contradiction:
Improvestorage overheadVSAvoidwrite operation efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The invention segments the write operation into two distinct phases: a metadata update phase that logs the intended write operation, and a data write phase that executes the actual write. This segmentation allows the system to decouple the metadata management overhead from the data write performance, enabling efficient partial stripe writes without the read-modify-write penalty.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by logging write operations to metadata before executing the actual data writes. This preliminary metadata update allows the system to prepare and coalesce multiple partial stripe writes into full stripe writes, improving write efficiency by avoiding repeated read-modify-write sequences.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If NVRAM is used to cache partial stripe writes, then write operation efficiency is improved by coalescing writes into full stripe writes, but system cost increases due to expensive NVRAM requirements

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoidsystem cost
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The invention replaces expensive NVRAM with cheaper, volatile memory resources that are already present in commodity servers. The system uses available RAM for write coalescing and relies on the log-structured metadata mechanism to ensure data integrity, eliminating the need for costly non-volatile memory while maintaining write efficiency.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The system creates a logical copy of the write operation in the metadata log before executing the physical write. This metadata copy allows the system to track and coalesce writes without requiring expensive caching hardware, using software-based mechanisms instead of hardware-based solutions.

Inventive Principle:
Principle #26Copying

3Productivity

If a log-structured file system is used to coalesce partial stripe writes, then write operation efficiency is improved, but implementation complexity increases due to metadata management requirements

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention extracts the metadata management function from the traditional file system and implements it as a separate, simplified logging mechanism. By taking out the complex metadata management requirements and replacing them with a straightforward log-structured approach, the system achieves write coalescing without the implementation complexity of a full log-structured file system.

Inventive Principle:
Principle #2Taking out (Extraction)

4Quantity of substance

If large segments are used in erasure coded objects, then storage efficiency is improved, but reliability deteriorates because failure of a single node causes loss of entire large segments

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddata reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The invention segments large storage objects into smaller data blocks that are then erasure coded across multiple nodes. This segmentation ensures that failure of a single node only affects a portion of the data, not entire large segments, while still maintaining storage efficiency through optimized erasure coding schemes.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11334276B2Using segment pre-allocation to support large segments
Publication Date: 2022.05.17 VMWARE INC
  • US11334276B2 patent drawing
  • US11334276B2 patent drawing
  • US11334276B2 patent drawing

AI summary

Techniques for supporting large segments when issuing writes to an erasure coded storage object in a distributed storage system are provided. In one set of embodiments, a node of the system can pre-allocate a segment of space in a capacity object of the storage object, receive a write request for updating a logical data block of the storage object, write data/metadata for the block to a record in a data log of a metadata object of the storage object, place the block in an in-memory bank, and determine whether the in-memory bank has become full. If so, the node can compute/fill-in one or more parity blocks for each stripe of the storage object in the in-memory bank and write, based on a next sub-segment pointer pointing to a free sub-segment of the pre-allocated segment, the contents of the in-memory bank via a full stripe write to the free sub-segment.