Persistent Memory Write Ordering via Atomic Action Episodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory does not guarantee the order of actions, such as writes, which can lead to data corruption if a crash occurs during the execution of a write operation.

Innovation Solution

Implementing an interface that creates episodes of actions, ensuring that actions that can be committed in any order are grouped together, and that only one episode is committed to the persistent memory at a time to maintain a consistent state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If actions are committed to persistent memory without ordering guarantees, then writing speed is improved, but data consistency deteriorates

Engineering Contradiction:
Improvewriting speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent segments the set of actions into multiple episodes, where each episode represents a subset of actions that can be committed atomically. This segmentation allows the system to commit smaller units of work to persistent memory, maintaining consistency within each episode while improving overall writing speed through parallel processing of multiple episodes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by creating and validating episodes before committing them to persistent memory. The system prepares the episode structure, validates the actions within each episode, and establishes the ordering requirements in advance, ensuring that when commits occur, they maintain consistency without requiring complex ordering guarantees from the persistent memory itself.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple actions are committed in parallel to persistent memory, then productivity is improved, but the risk of data corruption increases

Engineering Contradiction:
Improveoperation throughputVSAvoiddata corruption risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

By dividing actions into separate episodes, the system can commit multiple episodes in parallel to persistent memory, improving productivity. Each episode is independently valid, so if a crash occurs during parallel commits, only the incomplete episodes are affected while other episodes remain consistent, reducing the overall data corruption risk.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements beforehand cushioning by creating validation mechanisms and episode boundaries before parallel commits occur. Each episode is prepared and validated in advance, creating a cushion of pre-validated units that can be safely committed in parallel without propagating errors across the entire operation set.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Reliability

If actions are committed in a single sequential order to persistent memory, then data consistency is improved, but writing speed deteriorates

Engineering Contradiction:
Improveconsistent stateVSAvoidcommit speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments actions into episodes that can be committed in parallel, improving speed. Each episode maintains internal consistency through its atomic structure, while the collection of episodes together represents the complete operation. This segmentation allows the system to achieve both parallel commit speed and consistent state through the composability of valid episodes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The episode structure acts as an intermediary between the application's high-level operations and the persistent memory's low-level storage. This intermediary layer enables parallel commits by translating sequential operations into parallelizable episode units, while still guaranteeing consistent state through the episode validation and atomic commit mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If the system waits for complete operation execution before committing to persistent memory, then data consistency is improved, but loss of time increases

Engineering Contradiction:
Improvestate consistencyVSAvoidcommit latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by preparing and validating episodes before commit operations. This allows the system to commit episodes to persistent memory as soon as they are ready, rather than waiting for complete operation execution. The preliminary validation ensures consistency, while the early commit reduces latency by not delaying until all operations finish.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By segmenting operations into episodes, the system can commit individual episodes to persistent memory as soon as each episode is complete, rather than waiting for the entire operation sequence. This segmentation reduces the time loss by enabling incremental commits while maintaining consistency through the atomic nature of each episode commit.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250147694A1Write ordering for persistent memory
Publication Date: 2025.05.08 NETAPP INC
  • US20250147694A1 patent drawing
  • US20250147694A1 patent drawing
  • US20250147694A1 patent drawing

AI summary

Techniques are provided for implementing write ordering for persistent memory. A set of actions are identified for commitment to persistent memory of a node for executing an operation upon the persistent memory. An episode is created to comprise a first subset of actions of the set of actions that can be committed to the persistent memory in any order with respect to one another such that a consistent state of the persistent memory can be reconstructed in the event of a crash of the node during execution of the operation. The first subset of actions within the episode are committed to the persistent memory and further execution of the operation is blocked until the episode completes.