MDS Array Codes for Low-Overhead RAID Rebuilding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current RAID storage systems face inefficiencies in read and write operations and rebuilding processes due to complex parity computations, particularly as the size of RAID storage systems increases, necessitating more efficient storage codes to manage large-scale data storage effectively.

Innovation Solution

The development of systematic (n,k) MDS array codes with optimal rebuilding ratios, specifically intersecting zigzag sets codes, which use linear combinations of information symbols to construct parity symbols, allowing for efficient rebuilding of failed nodes with minimal data access and simple computations, achieving a rebuilding ratio of 1/r for r erasures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional MDS codes are used for RAID storage systems, then storage efficiency and data protection are improved, but parity computation complexity and rebuilding time increase

Engineering Contradiction:
Improvedata protectionVSAvoidparity computation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the parity computation process by organizing data into distinct blocks and computing parity independently for each block. This allows parallel processing of parity computations across multiple blocks, reducing overall complexity and enabling efficient rebuilding operations when using MDS codes for data protection.

Inventive Principle:
Principle #1Segmentation

2Productivity

If conventional MDS codes are used for RAID storage systems, then storage efficiency is improved, but rebuilding time and computational overhead increase

Engineering Contradiction:
Improvestorage efficiencyVSAvoidrebuilding time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of data into structured blocks with pre-defined parity relationships before storage. This preliminary structuring enables faster rebuilding operations by allowing the system to directly compute recovered data from pre-positioned parity blocks without complex real-time computations, thus reducing rebuilding time while maintaining high storage efficiency through optimal MDS code utilization.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If RAID array size increases to meet large-scale storage demands, then storage capacity is improved, but code efficiency and operation performance deteriorate

Engineering Contradiction:
Improvestorage capacityVSAvoidcode efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides large-scale RAID arrays into multiple independent data blocks, each processed with efficient MDS codes. This segmentation allows the system to scale storage capacity by simply adding more blocks while maintaining code efficiency through consistent, optimized processing of each individual block, avoiding the performance degradation that would occur with monolithic code processing of entire large arrays.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8694866B2MDS array codes with optimal building
Publication Date: 2014.04.08 CALIFORNIA INST OF TECH
  • US8694866B2 patent drawing
  • US8694866B2 patent drawing
  • US8694866B2 patent drawing

AI summary

MDS (maximum distance separable) array codes are widely used in storage systems to protect data against erasures. The rebuilding ratio problem is addressed and efficient parity codes are proposed. A controller as disclosed is configured for receiving configuration data at the controller that indicates operating features of the array and determining a parity code for operation of the array according to a permutation, wherein the configuration data specifies the array as comprising nodes defined by A=(ai,j) with size rm×k for some integers k,m, and wherein for T={v0 , . . . , Vk-1} ⊂Zrm a subset of vectors of size k, where for each v=(v1, . . . , vm)∈T, gcd (v1, . . . , vm, r), where gcd is the greatest common divisor, such that for any l, 0≦l≦r−1, and v ∈T, the code values are determined by the permutation fvl:[0,rm−1]→[0,rm−1]by fvl(x)=x+lv.