Simulating Byte-Addressable Storage on Block Devices
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Productivity
If a staging area is introduced to simulate NVRAM, then performance is improved, but the device complexity increases
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.
Data Source
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.


