Solid State Storage Parity Recovery for Partial Stripe Errors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In flash-based/solid-state storage systems, existing data redundancy schemes like RAID require waiting for a full stripe to be written before parity data can be used for recovery, leading to delays in addressing data access errors in partially written stripes.

Innovation Solution

The system proactively writes parity data to non-volatile flash media upon detecting a data access error in a partial stripe, allowing immediate data recovery without waiting for the full stripe to be completed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If parity data is written only after a full stripe is completed, then storage overhead is minimized, but data recovery time increases when errors occur in partially written stripes

Engineering Contradiction:
Improvedata recovery timeVSAvoidparity writing mechanism complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary action by proactively writing parity data to non-volatile flash media as soon as a data access error is detected in a partial stripe, rather than waiting for the full stripe to be completed. This preliminary parity write enables immediate data recovery while minimizing the time loss associated with error recovery.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parity data is written immediately upon error detection, then data recovery is accelerated, but storage overhead increases due to premature parity writes

Engineering Contradiction:
Improvedata recovery speedVSAvoidstorage overhead
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements feedback by monitoring data access operations and detecting errors in real-time. When a data access error is detected, the system triggers a feedback mechanism that proactively writes the pending parity data to non-volatile flash media, enabling accelerated data recovery while managing storage overhead through error-driven parity writes rather than continuous writing.

Inventive Principle:
Principle #23Feedback

3Reliability

If traditional RAID parity writing is used, then storage reliability is maintained, but system resilience to partial stripe errors is reduced

Engineering Contradiction:
Improvedata reliabilityVSAvoidsystem resilience to partial stripe errors
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system applies dynamics by adapting the parity writing strategy based on actual error conditions. Instead of a static approach where parity is written only after full stripe completion, the system dynamically responds to data access errors by proactively writing parity data to non-volatile flash media, thereby enhancing system resilience to partial stripe errors while maintaining data reliability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8700950B1System and method for data error recovery in a solid state subsystem
Publication Date: 2014.04.15 WESTERN DIGITAL TECHNOLOGIES INC
  • US8700950B1 patent drawing
  • US8700950B1 patent drawing
  • US8700950B1 patent drawing

AI summary

Systems and methods are disclosed for recovering from a data access error encountered in data stripes implemented in a data redundancy scheme (e.g., RAID) in a solid state storage device. In one embodiment, the storage device holds parity data in a temporary, volatile memory such as a RAM and writes the parity data to the non-volatile memory when a full stripe's worth of new write data has been written to the non-volatile memory. In one embodiment, upon detecting that a data access error has occurred in a partially written stripe, the storage device initiates a write of the parity data for the partially written stripe to the non-volatile memory and executes a RAID recovery procedure using the newly written parity data to attempt to recover from the detected error. This approach allows for a recovery from the data access error without waiting for the full stripe to be written.