Storage Pool Parity Layout to Prevent RAID Write-Holes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RAID-5 replication schemes face issues with data recoverability due to 'write-holes' and inefficiencies in modifying data, where inconsistencies in parity blocks can lead to unrecoverable data if write operations fail, especially when not all disks are updated correctly.

Innovation Solution

A modified RAID scheme that allocates physical blocks across multiple disks, generating and writing parity blocks in a way that ensures data recoverability by writing parity blocks and data blocks across different disks, allowing for per-file and per-block replication policies, and using a storage pool allocator to manage disk allocation efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional RAID-5 replication schemes are used, then data can be replicated across multiple disks, but write operations may fail to complete fully creating 'write-holes' where parity blocks become inconsistent with data blocks

Engineering Contradiction:
Improvedata recoverabilityVSAvoidparity block consistency
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent applies preliminary action by writing the parity block to disk before writing the data blocks. This ensures that if a write operation fails partway through, the parity block is already on disk and can be used to recover any data blocks that were not successfully written. This prevents the creation of 'write-holes' where parity would be missing or inconsistent.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements beforehand cushioning by creating parity blocks that can serve as a safety buffer against write failures. The parity block acts as a cushion that protects against data corruption or loss if the write operation is interrupted or fails, ensuring that data can be recovered even when complete stripe writes do not occur.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Productivity

If parity blocks are written after data blocks in traditional RAID-5, then data can be written efficiently, but incomplete writes result in unrecoverable data if write operations fail

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoiddata recoverability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent reverses the traditional RAID-5 write sequence by writing the parity block before the data blocks. This preliminary action ensures that the parity block is securely stored on disk before any data blocks are written, maintaining both efficiency and reliability. If a write operation fails after writing the parity block but before completing data block writes, the system can still recover using the pre-written parity block.

Inventive Principle:
Principle #10Preliminary action

3Speed

If delta blocks are generated using only one data block instead of all data blocks, then modification operations are faster, but recoverability is lost if write operations fail

Engineering Contradiction:
Improvedata modification speedVSAvoidmodified data recoverability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies preliminary action by writing the parity block before generating and writing delta blocks for modifications. This ensures that the parity block is already on disk when the delta block write operation completes, providing a safety cushion that enables recovery even if the delta block write fails or is interrupted.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements beforehand cushioning by ensuring the parity block is written to disk before the delta block write operation. This creates a protective buffer that maintains recoverability of modified data even when write operations fail, while still allowing the faster delta block generation approach to be used.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS20090313532A1Method and system for data replication
Publication Date: 2009.12.17 ORACLE AMERICAN INC
  • US20090313532A1 patent drawing
  • US20090313532A1 patent drawing
  • US20090313532A1 patent drawing

AI summary

A method for writing data to a storage pool includes receiving a write operation to write a logical block of data to the storage pool, determining a number (n−1) of physical blocks required to store the logical block of data, generating a parity block using the logical block of data, allocating n physical blocks in the storage pool, writing the parity block in the first of n allocated physical block, and writing the logical block of data across the remaining n−1 allocated physical blocks, where n is less than a number of disks in the storage pool, and where each of the n allocated physical blocks is located on a different disk in the storage pool.