Simulating Byte-Addressable Storage on Block Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage systems without non-volatile random access memory (NVRAM) face performance issues due to slower data writing to disk compared to logging modifying requests, and they struggle to maintain the order of changes as expected by NVRAM users.

Innovation Solution

A system and method that simulates a persistent random-access, byte-addressable storage device on a persistent random-access, block-addressable storage device by using a staging area in kernel memory for temporary storage of data, with asynchronous interfaces to manage metadata and ensure the order of changes, reducing copy operations and maintaining ordering through a virtual NVRAM driver.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a disk is used as persistent storage to simulate NVRAM, then the storage system can maintain persistence, but the performance is impacted due to slower writing speed

Engineering Contradiction:
ImprovepersistenceVSAvoidwriting speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a staging area in kernel memory as an intermediary between the fast NVRAM logging interface and the slower disk storage. This staging area buffers modifying requests, allowing the system to achieve both fast NVRAM-like performance for logging and reliable disk persistence for actual data storage, thereby resolving the contradiction between persistence and writing speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If data is written directly to disk, then persistence is ensured, but the order of changes cannot be maintained as expected by NVRAM users

Engineering Contradiction:
ImprovepersistenceVSAvoidorder of changes
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The patent implements preliminary action by first logging modifying requests to the NVRAM staging area in the expected order before eventually writing to disk. The staging area maintains a log of changes in the order they occurred, and the system ensures that disk writes preserve this ordering by processing and persisting changes sequentially rather than concurrently, thus maintaining the precise order expected by NVRAM users while ensuring disk persistence.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a staging area is introduced to simulate NVRAM, then performance is improved, but the device complexity increases

Engineering Contradiction:
ImproveperformanceVSAvoidstructure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies universality by designing the staging area to serve multiple functions: it acts as a buffer for fast logging, maintains change ordering, provides persistence guarantees, and interfaces with both NVRAM and disk storage systems. This multi-functional design consolidates what would otherwise require separate components into a single unified structure, improving performance while minimizing the increase in device complexity.

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

Data Source

PatentUS9389787B2System and method for simulating a persistent byte addressable storage device on a persistent block addressable storage device
Publication Date: 2016.07.12 NETAPP INC
  • US9389787B2 patent drawing
  • US9389787B2 patent drawing
  • US9389787B2 patent drawing

AI summary

A persistent random-access, byte-addressable storage device may be simulated on a persistent random-access, block-addressable storage device of a storage system configured to enable asynchronous buffered access to information persistently stored on the block-addressable device. Buffered access to the information is provided, in part, by a portion of kernel memory within the storage system allocated as a staging area for the simulated byte-addressable storage device to temporarily store the information destined for persistent storage. One or more asynchronous interfaces may be employed by a user of the simulated byte-addressable device to pass metadata describing the information to a driver of the device, which may process the metadata to copy the information to the staging area. The driver may organize the staging area as one or more regions to facilitate buffering of the information (data) prior to persistent storage on the block-addressable storage device. Each asynchronous access interface is configured to ensure that an order of changes to the data in the persistent storage is consistent with the order of arrival of the changes at the driver.