RAID Stripe Parity Calculation for Faster Partial Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face challenges in efficiently managing data storage and retrieval across multiple storage nodes, particularly in ensuring data redundancy and availability in the event of node failures.

Innovation Solution

The implementation of a storage system that utilizes a dual Peripheral Component Interconnect (PCI) flash storage device with separately addressable fast write storage, coupled with storage controllers that manage data distribution and redundancy using RAID-1 and RAID-6 stripe configurations, mirroring, and erasure coding schemes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional RAID parity calculation methods are used, then data redundancy is achieved, but write performance deteriorates due to sequential parity computation

Engineering Contradiction:
Improvedata redundancyVSAvoidwrite performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the parity calculation process into multiple parallel segments. Different parity values (P1, P2, P3, P4) are calculated simultaneously using separate computation paths, transforming the sequential parity computation into parallel operations that improve write performance while maintaining data redundancy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an additional computational dimension by using multiple independent PCI flash storage devices with separate address spaces. This allows simultaneous write operations to different storage nodes, enabling parallel data distribution and parity calculation across multiple dimensions rather than sequential single-node operations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If data is distributed across multiple storage nodes, then data availability improves, but system complexity increases

Engineering Contradiction:
Improvedata availabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal storage system where multiple PCI flash storage devices operate under a unified RAID-6 stripe configuration. Each storage device can serve multiple functions (data storage, parity storage, failover), reducing overall system complexity despite distributed architecture by enabling any device to fulfill multiple roles within the RAID array.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent implements data copying and mirroring across multiple storage nodes with separate address spaces. Critical data and parity information are replicated across devices, ensuring data availability while simplifying recovery procedures through predetermined copy locations rather than complex reconstruction algorithms.

Inventive Principle:
Principle #26Copying

3Productivity

If fast write storage is implemented, then write speed improves, but data reliability may deteriorate without proper redundancy mechanisms

Engineering Contradiction:
Improvewrite speedVSAvoiddata reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary parity calculation and data distribution across multiple storage nodes before actual write completion. By pre-calculating all parity values and distributing them to appropriate nodes simultaneously, the system ensures data reliability is established upfront while maintaining fast write speeds through parallel operations rather than sequential verification.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12346201B2Efficient redundant array of independent disks (RAID) stripe parity calculations
Publication Date: 2025.07.01 PURE STORAGE INC
  • US12346201B2 patent drawing
  • US12346201B2 patent drawing
  • US12346201B2 patent drawing

AI summary

Performing partial redundant array of independent disks (RAID) stripe parity calculations, including: receiving a last portion of a RAID stripe among multiple portions of the RAID stripe, all portions for a successful write of the RAID stripe being previously received except for the last portion; calculating a parity value based on the last portion of the RAID stripe and a previous parity value without calculating the parity value using a previous portion of the RAID stripe; and writing of the RAID stripe.