Persistent Memory Write Acceleration via Uncommitted Block Overwrite

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Accessing storage devices is relatively slow compared to central processing unit (CPU) processing speeds, leading to performance bottlenecks due to the speed of input/output (I/O) operations, and existing methods do not adequately accelerate write performance while ensuring data protection against power failures.

Innovation Solution

A system utilizing persistent memory that accelerates write performance by remapping data to a CPU cache and persistent memory, where data is written to the persistent memory if the block is in an uncommitted state, and asynchronously written back to the storage device when memory availability decreases below a threshold.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is written directly to storage device, then data persistence is ensured, but write performance is slow

Engineering Contradiction:
Improvewrite performanceVSAvoiddata persistence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Persistent memory is introduced as an intermediary between volatile memory and storage devices. Data is first written to persistent memory which provides fast write speeds, then asynchronously written back to storage devices. This mediator resolves the contradiction by providing both fast write performance and data persistence through its non-volatile nature.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Data is preliminarily written to persistent memory before being written to storage devices. The system performs the write operation to persistent memory first, which completes quickly, then asynchronously performs the write to storage devices in the background. This preliminary action achieves fast write performance while ensuring eventual data persistence.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data is cached in persistent memory, then write performance is improved, but system complexity increases

Engineering Contradiction:
Improvewrite performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Persistent memory serves multiple functions: it acts as a cache for fast writes, provides non-volatile storage for data persistence, and serves as a buffer for asynchronous writeback to storage devices. This multi-functionality reduces the need for separate components, thereby managing system complexity while improving write performance.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If asynchronous writeback is used, then storage device burden is reduced, but data consistency management becomes more complex

Engineering Contradiction:
Improvestorage device throughputVSAvoiddata consistency management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements feedback mechanisms to track the state of data in persistent memory and storage devices. Write status is monitored and managed through metadata that records whether data has been written to persistent memory, committed, and written back to storage devices. This feedback system manages data consistency automatically, reducing the apparent complexity for applications while enabling asynchronous writeback.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10402101B2System and method for using persistent memory to accelerate write performance
Publication Date: 2019.09.03 RED HAT INC
  • US10402101B2 patent drawing
  • US10402101B2 patent drawing
  • US10402101B2 patent drawing

AI summary

A central processing unit (CPU) executes a write request for first data to be written to a first block of a storage device. Executing the write request includes determining whether the first block is remapped to a first memory block in the persistent memory and whether the first memory block is in an uncommitted state. Responsive to determining that the first block is remapped to the first memory block in the persistent memory and that the the first memory block is in an uncommitted state, the CPU overwrites the first memory block in the persistent memory with the first data.