Persistent Memory Undo Logging Tail Inference

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory technologies face challenges in efficiently managing memory allocation and deallocation due to the need for multiple persist barriers, which increase latency and overhead, especially when failures occur, and traditional undo logging methods require two persist barriers per append, leading to higher overheads.

Innovation Solution

The implementation of undo logging for persistent memory transactions that infers the tail of the undo log after a failure rather than relying on a guaranteed correct tail pointer, reducing the number of persist barriers to one per append and utilizing checksum information to verify undo log records after failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional undo logging methods are used with two persist barriers per append, then reliability of tail pointer is improved, but transaction latency increases

Engineering Contradiction:
Improvetail pointer correctnessVSAvoidtransaction latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the tail pointer persistence requirement from the undo log append operation. Instead of persisting the tail pointer with every append (which causes 2N persist barriers), the system separates the append operation from the tail pointer persistence, allowing appends to proceed with only one persist barrier while recovering the tail pointer value after failures through checksum verification of log records.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a feedback mechanism where the system verifies undo log record integrity using checksums after failures. This feedback loop allows the system to recover the correct tail pointer value by examining persisted log records, eliminating the need for aggressive tail pointer persistence while maintaining reliability.

Inventive Principle:
Principle #23Feedback

2Reliability

If multiple persist barriers are used for memory allocation and deallocation, then persistence guarantee is improved, but system overhead increases

Engineering Contradiction:
Improvepersistence guaranteeVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the persistence operations for undo log records with the persistence operations for transaction commits. By combining these operations and using a single persist barrier per append that serves both the log record and the tail pointer update, the system reduces overhead while maintaining persistence guarantees for both allocation and deallocation operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The persist barrier is made multi-functional, serving both to persist the undo log record content and to persist the tail pointer update. This universal persist barrier approach eliminates redundant persistence operations and reduces the overall system overhead while maintaining reliability for memory management operations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If tail pointer is updated before persist barrier, then operation speed is improved, but data consistency after failure deteriorates

Engineering Contradiction:
Improveappend operation speedVSAvoiddata consistency after failure
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent performs the tail pointer update as a preliminary action before the persist barrier, but protects against failure by verifying the update through checksum validation of the persisted log records. This allows the system to maintain high operation speed while ensuring data consistency after failures through the verification feedback mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system prepares for potential failures by implementing checksum verification on persisted log records. This beforehand cushioning mechanism ensures that even if a failure occurs after the tail pointer is updated but before the persist barrier completes, the system can detect and recover the correct tail pointer value, maintaining data consistency.

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

Data Source

PatentUS11379324B2Persistent memory transactions with undo logging
Publication Date: 2022.07.05 ORACLE INT CORP
  • US11379324B2 patent drawing
  • US11379324B2 patent drawing
  • US11379324B2 patent drawing

AI summary

Undo logging for persistent memory transactions may permit concurrent transactions to write to the same persistent object. After an undo log record has been written, a single persist barrier may be issued. The tail pointer of the undo log may be updated after the persist barrier, and without another persist barrier, so the tail update may be persisted when the next log record is written and persisted. Undo logging for persistent memory transactions may rely on inferring the tail of an undo log after a failure rather than relying on a guaranteed correct tail pointer based on persisting the tail after every append. Additionally, transaction version numbers and checksum information may be stored to the undo log enabling failure recovery.