In-Line Erasure Coding Using Write-Ahead Log

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing erasure coding techniques require significant IOPS resources for post-process EC, which is inefficient, especially for small data writes, due to the need to read, write, and update metadata across multiple chunk files, leading to suboptimal storage space usage and increased overhead.

Innovation Solution

The implementation of an in-line erasure coding process using a write-ahead log, where an entire chunk file serves as a data stripe, reducing the number of IOPS needed by grouping chunk files and performing EC within the log, thereby minimizing the need for metadata updates and chunk file rewrites.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If post-process EC is used to improve storage space usage, then storage efficiency is improved, but IOPS resources are significantly consumed and metadata updates are frequent

Engineering Contradiction:
Improvestorage space usageVSAvoidIOPS resource consumption
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing erasure coding operations on data chunks before they are committed to chunk files, during the write process itself. The EC configuration is applied in-line as data is being written to the write-ahead log, converting data chunks to data stripes and generating parity stripes immediately, rather than performing these operations later during a separate post-process phase. This eliminates the need for subsequent metadata updates and chunk file rewrites.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data stripe width is increased to reduce EC overhead, then processing efficiency is improved, but storage space usage becomes inefficient for small data writes

Engineering Contradiction:
ImproveEC processing efficiencyVSAvoidstorage space usage for small writes
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies segmentation by dividing data into variable-sized data chunks based on the actual write size, rather than using fixed large data stripe widths. Each data chunk is then processed through EC to generate the appropriate number of data stripes and parity stripes. This allows the system to maintain efficient EC processing by processing data in appropriately sized segments rather than forcing all data into large fixed-width stripes, thereby improving storage space utilization for small writes while maintaining processing efficiency.

Inventive Principle:
Principle #1Segmentation

3Reliability

If multiple chunk files are used to store data stripes, then fault tolerance is improved, but metadata update complexity and IOPS requirements increase

Engineering Contradiction:
Improvefault toleranceVSAvoidmetadata update complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies merging by consolidating the storage of data stripes and parity stripes into a unified write-ahead log structure, rather than distributing them across multiple separate chunk files. The write-ahead log sequentially stores data chunks that are converted to data stripes and parity stripes in-line, eliminating the need for complex metadata updates across multiple chunk files while maintaining fault tolerance through the EC configuration. This unified approach reduces metadata complexity and IOPS requirements while preserving reliability.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12001685B2Performing an in-line erasure coding process using a write-ahead log
Publication Date: 2024.06.04 COHESITY INC
  • US12001685B2 patent drawing
  • US12001685B2 patent drawing
  • US12001685B2 patent drawing

AI summary

A plurality of data stripes and one or more parity stripes are generated using a plurality of data chunks stored in a write-ahead log based on an erasure coding configuration. The plurality of data stripes and the one or more parity stripes are stored on corresponding different storage devices. The plurality of data stripes and the one or more parity stripes are associated together under a data protection grouping container.