Persistent Memory File System Format for Byte-Addressable Tiering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage file systems are unable to adequately utilize faster byte-addressable storage media like persistent memory due to their design being tailored for block-addressable storage, resulting in inefficiencies in data access and management.
Innovation Solution
A file system format is implemented that utilizes data structures and functionality tailored for byte-addressable persistent memory, enabling snapshot capture and tiering between block-addressable and byte-addressable storage, with features such as a per-page structure table for metadata management and scavenging to optimize storage efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a storage file system tailored for block-addressable storage is used, then compatibility with traditional storage devices is maintained, but the ability to utilize byte-addressable persistent memory efficiently is lost
Solution Approach 1:
The file system is segmented into distinct layers: a persistent memory file system layer for byte-addressable persistent memory and a storage file system layer for block-addressable storage. This segmentation allows each layer to be optimized for its specific storage type while maintaining overall system functionality.
Solution Approach 2:
A persistent memory file system acts as an intermediary layer between the client and the persistent memory device. This intermediary translates byte-addressable operations into appropriate storage operations, enabling efficient utilization of persistent memory without requiring changes to existing storage interfaces.
2Speed
If block-based data structures are used in the file system, then traditional storage management is simplified, but data access speed on persistent memory is reduced
Solution Approach 1:
The file system implements local quality by using byte-addressable data structures within the persistent memory file system layer while maintaining block-based structures in the storage file system layer. This allows each layer to use the data structure best suited for its storage medium, optimizing access speed where possible.
Solution Approach 2:
The invention changes the addressing parameter from block-based to byte-addressable for persistent memory operations. This parameter change enables direct memory access patterns that exploit the high-speed capabilities of persistent memory, significantly improving data access speed.
3Productivity
If the file system is optimized for fast access, then performance on persistent memory improves, but data persistence and reliability may be compromised
Solution Approach 1:
The persistent memory file system implements beforehand cushioning through write buffering and caching mechanisms. Data is staged in buffers before being committed to persistent memory, allowing for error checking and recovery operations without impacting the high-speed access path for valid data.
Solution Approach 2:
The file system employs feedback mechanisms through checksums, reference counting, and state tracking that continuously monitor data integrity. This feedback enables the system to detect and correct errors while maintaining high performance through efficient error handling paths.
Data Source
AI summary
Techniques are provided for implementing a file system format for persistent memory. A node, with persistent memory, receives an operation associated with a file identifier and file system instance information. A list of file system info objects are evaluated to identify a file system info object matching the file system instance information. An inofile, identified by the file system info object as being associated with inodes of files within an instance of the file system targeted by the operation, is traversed to identify an inode matching the file identifier. If the inode has an indicator that the file is tiered into the persistent memory, then the inode it utilized to facilitate execution of the operation upon the persistent memory. Otherwise, the operation is routed to a storage file system tier for execution by a storage file system upon storage associated with the node.


