Persistent Memory Data Protection via Parity XOR Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current server memory architectures lack protection mechanisms for persistent memory devices, leading to data loss across multiple devices in case of failure due to memory interleaving, making it essential to implement data protection in persistent memory.

Innovation Solution

A method and system that identify writes to multiple persistent memory channels, generate parity data through XOR operations, and use this data to recreate lost information in case of failure, ensuring data protection with minimal additional memory capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory interleaving is used to increase memory capacity and performance, then memory bandwidth and capacity are improved, but data loss across multiple devices occurs when one device fails

Engineering Contradiction:
Improvememory bandwidthVSAvoiddata availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by writing parity data to persistent memory before actual data writes occur. The memory controller intercepts write commands, generates parity data using XOR operations, and stores it in advance, enabling rapid data recovery without waiting for failure detection

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Parity data acts as an intermediary element that mediates between the original data and the recovery process. The parity data, stored separately in persistent memory, serves as a backup representation that enables reconstruction of lost data through XOR operations when device failure occurs

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional mirroring is used to protect data, then data availability is improved, but memory capacity requirement increases to 100% additional capacity

Engineering Contradiction:
Improvedata availabilityVSAvoidmemory capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system changes the parameter of data representation by using parity data (XOR combination) instead of complete data copies. This transformation allows the same level of data protection with reduced memory capacity requirements, achieving 50% capacity efficiency compared to traditional mirroring

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

Instead of copying complete data blocks for protection, the system creates a condensed parity copy that represents the relationship between multiple data blocks. This parity copy is sufficient for recovery purposes and occupies half the space of traditional mirroring solutions

Inventive Principle:
Principle #26Copying

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

Effectively protects data in persistent memory by recreating lost data using parity data, reducing the need for additional memory capacity beyond 50% compared to traditional mirroring methods, thus ensuring data availability and integrity.

Implementation Method 1

generate a parity block by performing an XOR operation on the first data and the second data

Methodology Applied
Scientific EffectXOR operation:

Data Source

PatentUS10095579B2System, method, and computer program for protecting data in persistent memory
Publication Date: 2018.10.09 LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
  • US10095579B2 patent drawing
  • US10095579B2 patent drawing
  • US10095579B2 patent drawing

AI summary

According to one embodiment, a computer program embodied on a tangible computer readable medium includes computer code for identifying a first write to a first persistent memory on a first channel and a second write to a second persistent memory on a second channel, computer code for performing a third write to a third persistent memory on a third channel, where the third write includes parity data associated with the first write and the second write, computer code for identifying a failure of the second persistent memory, and computer code for generating recovery data for the second persistent memory, using the first channel, the third channel, and the parity data.