Two-Stage RAID Storage Model for Write-Hole Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RAID systems face challenges in efficiently writing data across multiple disks, particularly in scenarios where not all disks in a stripe are utilized, leading to inconsistencies and data unrecoverability due to the 'write-hole' issue, which current solutions like hardware-based approaches and parity logging only partially address.

Innovation Solution

The method involves writing a logical data block and its parity block to a RAID log using fewer physical log blocks than the total number of disks, and then copying the data to a RAID slab, where a checksum is updated to ensure data integrity and error correction, allowing for variable stripe sizes and efficient data recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is written directly to RAID slab with variable stripe sizes, then storage efficiency is improved, but data reliability deteriorates due to write-hole issues

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddata reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by first writing data to the RAID log before writing to the RAID slab. This two-stage approach ensures that data is safely recorded in the log (which uses uniform stripe sizes and parity protection) before being transferred to the slab, preventing write-hole issues while maintaining storage efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The RAID log acts as an intermediary between the write operation and the RAID slab. By introducing this intermediate storage layer with robust error protection, the system achieves both reliability (through the log's uniform striping and parity) and efficiency (through the slab's flexible allocation).

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If uniform stripe sizes are used in RAID slab, then reading speed is improved, but storage flexibility deteriorates

Engineering Contradiction:
Improvereading speedVSAvoidstorage flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent segments the storage system into two distinct parts: the RAID log with uniform stripe sizes optimized for fast reading, and the RAID slab with variable stripe sizes optimized for storage flexibility. This segmentation allows each part to excel at its specific function without compromise.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system copies data from the RAID log to the RAID slab after initial writing. This copying mechanism allows the uniform-striped log to handle reads efficiently while the variable-striped slab provides flexible storage, with data available in both formats.

Inventive Principle:
Principle #26Copying

3Device complexity

If fewer physical log blocks are used than total disks, then device complexity is reduced, but data protection capability deteriorates

Engineering Contradiction:
Improvedevice complexityVSAvoiddata protection capability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent applies local quality by giving different parts of the storage system different characteristics. The RAID log uses uniform stripe sizes and full parity protection for maximum reliability, while the RAID slab uses variable stripe sizes for efficiency. Each region is optimized for its specific purpose rather than applying a single uniform approach system-wide.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2630571B1Two stage checksummed raid storage model
Publication Date: 2020.10.14 ORACLE INT CORP
  • EP2630571B1 patent drawingFigure 1
  • EP2630571B1 patent drawingFigure 2
  • EP2630571B1 patent drawingFigure 3A

AI summary

A method for writing a logical data block to storage. The method includes receiving a request to write a logical data block to a storage pool, allocating a number of physical log blocks in a RAID log and a parity block for the logical data block, and writing the logical data block and the parity block to the physical log blocks. The number of the physical log blocks are less than a number of disks storing the RAID log. The method further includes allocating space in a physical slab block in a RAID slab for the logical data block, copying data including the logical data block to the space in the physical slab block, and updating, in the RAID slab, a checksum corresponding to the physical slab block and a parity block that includes the data stripe having the physical slab block based on the data copied.