Persistent Memory Page Cache for Non-Volatile Storage Wear Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional memory-based technologies for file access, such as memory mapping, require modifications or libraries to synchronize data with non-volatile memory, leading to inefficiencies and wear on storage devices due to repeated writes from volatile to non-volatile memory, especially when using non-persistent memory systems or remote file systems.
Innovation Solution
Implementing a page-caching system that utilizes persistent memory during memory-mapped access, allowing for caching of file pages on persistent memory instead of volatile memory, thereby reducing the need for frequent writes to non-volatile storage and minimizing wear on storage devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If volatile memory is used for page caching, then fast access speed is achieved, but data is lost when power is removed and repeated writes to non-volatile storage occur
Solution Approach 1:
The patent introduces persistent memory as an intermediary layer between volatile memory and non-volatile storage. This mediator layer provides the persistence capability that volatile memory lacks, while maintaining the fast access characteristics of volatile memory, thereby resolving the contradiction between speed and reliability.
Solution Approach 2:
The patent applies different memory technologies to different parts of the caching hierarchy: volatile memory for the most frequently accessed data requiring speed, persistent memory for data requiring both speed and persistence, and non-volatile storage for bulk storage. This local differentiation resolves the contradiction by optimizing each layer for its specific requirements.
2Reliability
If persistent memory is used for page caching, then data persistence is achieved, but access speed may be slower compared to volatile memory
Solution Approach 1:
The patent segments the caching system into multiple layers with different characteristics. Persistent memory handles data requiring persistence, while volatile memory continues to handle data requiring maximum speed. This segmentation allows the system to achieve both persistence and high speed for different data sets simultaneously.
Solution Approach 2:
The patent adds a new dimension to the memory hierarchy by introducing persistent memory between volatile memory and non-volatile storage. This creates a three-tier hierarchy that resolves the speed-persistence tradeoff by providing intermediate access speeds with full persistence guarantees.
3Productivity
If memory mapping is used to access files, then I/O performance is improved, but repeated writes from volatile to non-volatile memory cause wear on storage devices
Solution Approach 1:
The patent performs preliminary action by caching file data in persistent memory before it needs to be written back to non-volatile storage. This allows data to be persisted immediately upon modification without requiring repeated flush operations to the storage device, thereby maintaining I/O performance while reducing wear.
Solution Approach 2:
The patent enables continuous caching operations in persistent memory without interrupting the application's I/O operations. Data can be modified in the persistent memory cache and persisted asynchronously, allowing the useful action of file access to continue uninterrupted while storage device wear is minimized.
Data Source
AI summary
Various examples described herein provide for caching a page on persistent memory for memory-mapped access of a file from a non-persistent memory file system or a remote file system having a non-persistent memory page cache. In particular, some examples detect memory-mapped access of a file from a non-persistent memory file system or a remote file system having a non-persistent memory page cache and, based on availability of persistent memory, caches a page associated with the memory-mapped access on the persistent memory.


