Persistent Memory Object Design Framework for Detectable Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing approaches to designing detectably recoverable concurrent data structures in persistent memory suffer from high runtime overhead and are limited to simple algorithms, failing to ensure correctness in both non-crashing and crashing concurrent executions.

Innovation Solution

A non-volatile memory object design system that implements a type system for deterministic replay and detectable operations using persistent memory, including checkpoint operations, compare-and-swap operations, and operation descriptors, to ensure safety and efficiency in program design, supporting loops and loop-carried dependencies through timestamp-based mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing approaches to designing detectably recoverable concurrent data structures are used, then thread safety and crash consistency are ensured, but runtime overhead is high and algorithm complexity is limited

Engineering Contradiction:
Improvedetectable recoverabilityVSAvoidruntime performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the data structure into persistent and transient parts, allowing different recovery strategies for each. The persistent part is protected by checkpoint operations that record state to non-volatile memory, while the transient part can be recovered more efficiently. This segmentation enables detectable recoverability without requiring full checkpointing of all data, thus reducing runtime overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary checkpoint operations that record the state of persistent data structures before potential crashes. By performing these checkpoint actions in advance and using operation descriptors to track progress, the system ensures that upon recovery, it can detect whether a checkpoint was completed and resume from the correct state, eliminating the need for complex post-crash analysis and reducing overall runtime overhead.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If simple algorithms are used for persistent data structures, then implementation is easier, but runtime overhead increases and performance decreases

Engineering Contradiction:
Improveimplementation simplicityVSAvoidruntime performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent creates a universal programming framework that can be applied to various persistent data structure algorithms. The framework provides generic checkpoint and recovery mechanisms that work with different data structures (queues, stacks, linked lists, hash tables), eliminating the need to implement complex recovery logic for each specific algorithm. This universality maintains implementation simplicity while enabling optimized performance through framework-level optimizations.

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

Solution Approach 2:

The patent changes the parameters of data structure operations by introducing operation descriptors that track progress and state. Instead of using fixed, simple algorithms, the framework dynamically adjusts operation behavior based on checkpoint status and recovery state. This allows the same base algorithm to perform efficiently in both normal operation and recovery scenarios, improving runtime performance without complicating the core algorithm implementation.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If checkpoint operations are implemented to ensure crash consistency, then reliability improves, but device complexity and implementation difficulty increase

Engineering Contradiction:
Improvecrash consistencyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces operation descriptors as intermediary data structures that mediate between the persistent data structure and the checkpoint mechanism. These descriptors track the progress and state of operations without requiring complex integration with the core data structure logic. By using this intermediary layer, the system achieves crash consistency through checkpoint operations while keeping the core data structure implementation simple and manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses checkpoint operations that create copies of the persistent data structure state at critical points. Instead of modifying the original structure to track checkpoint status, the framework creates persistent copies of the state and uses operation descriptors to reference these copies. This copying approach ensures crash consistency while maintaining the simplicity of the original data structure implementation, as the checkpoint mechanism operates on separate copy objects.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20240160411A1System and Method for Providing a Programming Framework for Designing High-Performance Non-Volatile Memory Objects with High Usability
Publication Date: 2024.05.16 KOREA ADVANCED INST OF SCI & TECH
  • US20240160411A1 patent drawing
  • US20240160411A1 patent drawing
  • US20240160411A1 patent drawing

AI summary

Disclosed is a programming framework providing system and method that may design a high-performance non-volatile memory object with high usability. An object design method of a non-volatile memory performed by a non-volatile memory object design system includes designing a type system for a deterministic replay and a detectable operation using persistent memory (PM) language; and implementing a data structure (DS) of the PM based on the designed type system.