Persistent Memory File System Reconciliation via Asynchronous Scanning

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveaccess speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvesystem availabilityVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #23Feedback

3Reliability

If the system performs full reconciliation of all metadata after failure, then the data consistency is improved, but the client downtime increases

Engineering Contradiction:
Improvedata consistencyVSAvoidclient downtime
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240411645A1Persistent memory file system reconciliation
Publication Date: 2024.12.12 NETAPP INC
  • US20240411645A1 patent drawing
  • US20240411645A1 patent drawing
  • US20240411645A1 patent drawing

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.