Persistent Memory File System Reconciliation via Asynchronous Scanning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Persistent memory systems face inconsistencies due to the lack of guaranteed order in persisting operations, leading to potential data loss, program errors, and operational issues upon recovery from failures.
Innovation Solution
A reconciliation process is implemented to correct high-level file system metadata while blocking client access, followed by the execution of first and second scanners to fix local and global inconsistencies, allowing client I/O operations to proceed without exposure to inconsistencies by on-demand scanning during processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the persistent memory performs write operations in any order without guaranteeing execution order, then the access speed and latency are improved, but the data consistency and reliability deteriorate
Solution Approach 1:
The system performs preliminary actions by creating episodes that group multiple actions together before they are persisted to persistent memory. These episodes are assigned monotonically increasing identifiers and are designed to be atomic units of work. The preliminary organization of actions into episodes with version identifiers allows the system to later verify whether all actions in an episode were successfully applied, enabling recovery from partial failures while maintaining the performance benefits of unordered persistence.
2Productivity
If the node recovers from failure without a reconciliation process, then the system availability is improved, but the data integrity deteriorates due to inconsistent state
Solution Approach 1:
The system implements feedback mechanisms through version identifiers and monotonically increasing episode identifiers that are persisted along with the actions. When the node recovers, it can scan the persistent memory, verify the consistency of episodes using their version identifiers, and detect any incomplete or inconsistent states. This feedback allows the system to reconcile inconsistencies and restore data integrity while maintaining high availability through efficient scanning and selective recovery operations.
3Reliability
If the system performs full reconciliation of all metadata after failure, then the data consistency is improved, but the client downtime increases
Solution Approach 1:
The system segments the reconciliation process into targeted operations that focus only on verifying and fixing specific inconsistent states rather than performing a complete full-system reconciliation. By using episode identifiers and version numbers, the system can identify and reconcile only the affected episodes, significantly reducing the time required for recovery while maintaining data consistency. This segmented approach allows clients to resume operations much faster compared to traditional full reconciliation methods.
Data Source
AI summary
Techniques are provided for persistent memory file system reconciliation. As part of the persistent memory file system reconciliation, high level file system metadata associated with a persistent memory file system of persistent memory is reconciled. Client access to the persistent memory file system is inaccessible until reconciliation of the high level file system metadata has completed. A first scanner is executed to traverse pages of the persistent memory in order to fix local inconsistencies associated with the pages. A local inconsistency of a first set of metadata or data of a page is fixed using a second set of metadata or data of the page. The first scanner is executed asynchronously in parallel with processing client I/O directed to the persistent memory file system.


