NVMe Partition Error Recovery via Reserved Block Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile storage partitions face challenges in error recovery during system shutdowns and reboots, leading to potential loss of data due to uncorrectable errors and wear leveling issues in NVMe partitions, which complicates the preservation and recovery of NVDIMM-SW data.

Innovation Solution

The solution involves over-provisioning NVMe storage partitions with reserved blocks for on-demand switching during errors, tracked by metadata, allowing for auto-recovery and migration of data between primary and reserved partitions, ensuring data preservation across reboots and system restarts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is saved to NVMe storage partitions during system shutdown, then data persistence is improved, but uncorrectable errors and wear leveling issues cause data loss

Engineering Contradiction:
Improvedata persistenceVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by detecting uncorrectable errors during the save operation and switching to a reserved partition before data loss occurs. The error determination module monitors the save operation and identifies errors proactively, allowing the system to migrate data to a protected reserved partition before the error causes actual data loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system establishes a cushioning mechanism by allocating reserved partitions in advance that can absorb errors without losing data. These reserved partitions act as a buffer or cushion that protects against data loss when errors occur during save operations, allowing the system to recover without permanent data loss.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Reliability

If reserved partitions are allocated for error recovery, then error recovery capability is improved, but storage capacity is reduced

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system changes the parameter of partition allocation by dynamically switching between primary and reserved partitions based on error conditions. Instead of permanently dedicating large portions of storage to reserved partitions, the system maintains smaller reserved partitions and uses parameter changes (switching) to provide error recovery capability while minimizing the impact on usable storage capacity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If error detection and switching operations are performed, then data integrity is improved, but system complexity increases

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

Solution Approach 1:

The system implements self-service by automatically detecting errors, determining their nature, and switching partitions without requiring complex external intervention. The error determination module and partition switching mechanism work autonomously to maintain data integrity, reducing the need for complex manual error recovery procedures and simplifying the overall system operation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3698251B1Error recovery in non-volatile storage partitions
Publication Date: 2021.10.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3698251B1 patent drawingFigure 1
  • EP3698251B1 patent drawingFigure 2
  • EP3698251B1 patent drawingFigure 3

AI summary

In some examples, error recovery in non-volatile storage partitions may include determining, upon completion of a save operation that includes saving of data to a primary location, that an error occurred with respect to the save operation. Based on a determination that the error occurred with respect to the save operation, a reserved location for saving the data may be identified. The data may be saved to the reserved location. Metadata to indicate usage of the reserved location as the primary location for the saved data may be updated.