Persistent Memory File Format for Byte-Addressable Tiering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage file systems are unable to adequately utilize faster types of storage, such as persistent memory, due to their block-addressable design, which is incompatible with the byte-addressable nature of persistent memory.
Innovation Solution
A file system format is implemented that includes data structures and functionality tailored for byte-addressable persistent memory, allowing for efficient storage and access of client data, including snapshot capture and tiering between block-addressable and byte-addressable storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a storage file system is designed for block-addressable storage media, then it can effectively manage data on hard drives and solid state drives, but it cannot adequately utilize faster byte-addressable persistent memory storage
Solution Approach 1:
The patent segments the storage management system into two distinct file system components: a block-addressable file system for traditional storage media and a byte-addressable file system for persistent memory. This segmentation allows each file system to be optimized for its specific storage type while maintaining overall system versatility. The byte-addressable file system uses page-based data structures and memory-mapped I/O operations to efficiently access persistent memory, thereby resolving the contradiction between speed optimization for specific storage types and adaptability across different storage media.
2Productivity
If the storage file system uses block-based data structures, then it is optimized for disk drives and solid state drives, but it is incompatible with byte-addressable persistent memory access characteristics
Solution Approach 1:
The patent introduces a file system translation layer that acts as an intermediary between the block-based storage subsystem and the byte-addressable persistent memory. This translation layer converts block-based I/O operations into page-based memory operations, enabling efficient persistent memory access while maintaining compatibility with existing block-based storage interfaces. The intermediary layer manages page tables, handles memory-mapped I/O, and coordinates data movement between different storage hierarchies, thereby resolving the incompatibility between block-based data structures and byte-addressable memory access.
3Reliability
If the storage system is optimized for block-addressable media, then it achieves reliable data management on slower storage, but it cannot leverage the lower latency and faster access speeds of persistent memory
Solution Approach 1:
The patent implements a dynamic storage management system that can adaptively route I/O operations to the most appropriate storage medium based on data access patterns, performance requirements, and media characteristics. The system dynamically adjusts between block-based and byte-addressable access modes, and can migrate data between persistent memory and block storage as needed. This dynamic approach maintains data management reliability by using proven block-based protocols when needed while leveraging fast persistent memory access for time-critical operations, thereby resolving the contradiction between reliability and access latency.
Data Source
AI summary
Techniques are provided for implementing a file system format for persistent memory. A node, comprising persistent memory, receives an operation comprising 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 comprises 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.


