Parity Journal for Persistent Memory Cache Write-Hole Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory-based write-back caches in storage systems can lead to data corruption due to the 'write-hole problem', where a second power loss occurs during a cache flush after a first power loss, resulting in incomplete data or parity writes, causing incorrect parity calculations and data corruption during RAID rebuilds.

Innovation Solution

A method and system that utilize a parity journal to determine if there are uncompleted write operations from previous boot sessions, issuing write requests for both data and parity during cache flushes, and calculating parity values through read-modify-write operations to ensure accurate data storage and recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a persistent memory-based write-back cache is used to improve storage performance, then throughput and latency are improved, but data corruption can occur due to the write-hole problem during power loss events

Engineering Contradiction:
Improvestorage throughputVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by checking the power loss indicator and verifying write completion status before initiating cache flush operations. This preliminary verification prevents the write-hole problem by ensuring that both data and parity writes are properly completed before considering the operation finished, thereby maintaining data integrity while using persistent memory cache.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms through the power loss indicator that provides information about previous power loss events. This feedback allows the cache management logic to adjust its behavior by performing additional verification steps when power loss is detected, ensuring that cached data is properly flushed to storage resources before resuming normal operation.

Inventive Principle:
Principle #23Feedback

2Reliability

If cached data is flushed to physical storage resources during a power loss event, then data loss is reduced, but incomplete writes can occur resulting in data corruption

Engineering Contradiction:
Improvedata loss preventionVSAvoidwrite completion accuracy
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

Before flushing cached data during power loss events, the system performs preliminary checks using the power loss indicator and verifies the completion status of pending writes. This preliminary action ensures that only complete and valid data blocks are flushed to storage resources, preventing incomplete writes and maintaining write completion accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies preliminary anti-action by detecting power loss conditions and preventing incomplete write operations from being flushed to storage. The power loss indicator triggers corrective actions that counteract the potential harm of incomplete writes, ensuring data integrity during power loss events.

Inventive Principle:
Principle #9Preliminary anti-action

3Duration of action of stationary object

If the cache flush operation writes data to storage resources, then cached data is persisted, but parity information may be calculated incorrectly leading to data corruption during RAID rebuilds

Engineering Contradiction:
Improvedata persistenceVSAvoidparity calculation accuracy
Core Design Contradiction:
Duration of action of stationary objectVSManufacturing precision

Solution Approach 1:

The system performs preliminary verification of write completion status before considering the cache flush operation complete. By checking whether both data and parity writes have been successfully persisted to storage resources, the system ensures that parity calculation accuracy is maintained and prevents corruption during subsequent RAID rebuild operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10303560B2Systems and methods for eliminating write-hole problems on parity-based storage resources during an unexpected power loss
Publication Date: 2019.05.28 DELL PROD LP
  • US10303560B2 patent drawing
  • US10303560B2 patent drawing
  • US10303560B2 patent drawing

AI summary

In accordance with embodiments of the present disclosure, a method may include, during a cache flush of data of a cache entry from a non-volatile memory to a storage resource, wherein the non-volatile memory is integral to a persistent write-back cache and storing the data in response to a power event associated with the write-back cache: (a) calculating a calculated parity value by undertaking a read-modify-write operation with respect to the storage resource; and (b) storing the calculated parity value and a target address of the storage resource associated with the calculated parity value in a parity journal.