Storage System Data Loss Prevention via Persistent Memory Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Enterprise-class storage servers face challenges in preventing data loss during system crashes or disk failures, as they must either operate with degraded performance or discard acknowledged user data, due to the uncertainty of when a failing mass storage device will become accessible again.

Innovation Solution

During system initialization, uncommitted data records are identified and saved to accessible storage aggregates or stored in a file for later use, allowing data to be replayed when the aggregates become available, thus preventing data loss and freeing up persistent memory for ongoing operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If uncommitted data is held in persistent memory during system initialization, then data integrity is maintained, but system performance degrades due to memory being occupied

Engineering Contradiction:
Improvedata integrityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary identification of uncommitted data records during initialization and saves them to accessible storage aggregates before they are needed. This advance preparation allows the persistent memory to be freed for ongoing operations while ensuring data can be recovered when aggregates become available.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Uncommitted data records are extracted from persistent memory and saved to accessible storage aggregates during initialization. This separation allows the persistent memory to be released for normal operations while the extracted data remains preserved in the storage aggregate for later recovery.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If the system waits for storage aggregates to become available before processing, then data can be written safely, but system responsiveness deteriorates

Engineering Contradiction:
Improvedata safetyVSAvoidsystem responsiveness
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary saving of uncommitted data to accessible storage aggregates during initialization, before the aggregates are officially brought online. This advance action allows normal operations to proceed without waiting for aggregate availability, while data safety is maintained through the preliminary save operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Accessible storage aggregates serve as an intermediary storage location during initialization. Data is temporarily saved to these aggregates while they are being prepared, allowing the system to maintain data safety without blocking normal operations until the aggregates are fully available.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If persistent memory is freed during initialization, then system performance improves, but data loss risk increases

Engineering Contradiction:
Improvesystem performanceVSAvoiddata loss prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Uncommitted data records are extracted from persistent memory and saved to accessible storage aggregates during initialization. This extraction allows persistent memory to be freed for improved system performance while the extracted data remains preserved in the storage aggregate, preventing data loss.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates a copy of uncommitted data records in accessible storage aggregates during initialization. This copying mechanism allows the original persistent memory to be freed while a preserved copy remains available for recovery, thus improving performance without increasing data loss risk.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8275939B2Preventing data loss in a storage system
Publication Date: 2012.09.25 NETAPP INC
  • US8275939B2 patent drawing
  • US8275939B2 patent drawing
  • US8275939B2 patent drawing

AI summary

Storage servers use a fast, non-volatile or persistent memory to store data until it can be written to slower mass storage devices such as disk drives. If the server crashes before a write can complete, the data remains safely stored in non-volatile memory. If the data cannot be committed to disk when the server reboots (e.g. because the destination mass storage device is unavailable), it is stored in a file. When the disk reappears, the data in the file may be used to restore a file or filesystem on the disk to a consistent state.