Persistent Memory File System with Compacted Indirect Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage file systems are not optimized to leverage faster and lower-latency byte-addressable persistent memory, as they are tailored for block-addressable storage media, leading to inefficiencies in data access and management.
Innovation Solution
A file system format is implemented that utilizes data structures and commands tailored for byte-addressable persistent memory, enabling snapshot capture and tiering between block-addressable and byte-addressable storage, with features like per-page structures and duplicate superblocks for redundancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a storage file system tailored for block-addressable storage media is used, then compatibility with traditional storage devices is maintained, but the ability to leverage faster byte-addressable persistent memory is lost
Solution Approach 1:
The patent introduces a file system specifically designed as an intermediary layer between byte-addressable persistent memory and client devices. This file system acts as a mediator that translates traditional block-based file operations into byte-addressable memory operations, enabling fast persistent memory access while maintaining compatibility with existing storage interfaces and applications.
Solution Approach 2:
The patent changes the fundamental addressing parameter from block-based to byte-addressable, allowing the system to exploit the full performance potential of persistent memory. By modifying how data is addressed and accessed at the file system level, the system achieves faster data retrieval while maintaining the abstraction needed for broad storage media compatibility.
2Productivity
If block-based data structures are used in the file system, then traditional storage management is simplified, but efficient utilization of byte-addressable persistent memory characteristics is prevented
Solution Approach 1:
The patent segments the persistent memory into page-based units with dedicated metadata structures for each page. This segmentation allows the file system to manage byte-addressable memory efficiently by organizing data into manageable pages with associated metadata, improving productivity while controlling complexity through structured organization.
Solution Approach 2:
The patent transitions from traditional block-based one-dimensional storage management to a multi-dimensional approach using page-based structures with metadata layers. This dimensional change enables efficient byte-addressable access patterns while organizing data in a structured manner that balances productivity and complexity.
3Reliability
If redundancy mechanisms like duplicate superblocks are implemented, then data integrity and availability are improved, but storage space is consumed
Solution Approach 1:
The patent implements copying of critical metadata structures (superblocks) to multiple locations within the persistent memory file system. This copying mechanism ensures data integrity and availability by providing redundant copies of essential file system information, allowing recovery from corruption or loss while consuming minimal additional storage space compared to the total capacity.
Data Source
AI summary
Techniques are provided for compacting indirect blocks. For example, an object is represented as a structure including data blocks within which data of the object is stored and indirect blocks including block numbers of where the data blocks are located in storage. Block numbers within a set of indirect blocks are compacted into a compacted indirect block including a base block number, a count of additional block numbers after the base block number in the compacted indirect block, and a pattern of the block numbers in the compacted indirect block. The compacted indirect block is stored into memory for processing access operations to the object. Storing compacted indirect blocks into memory allows for more block numbers to be stored within memory.


