Persistent Memory Object Design Framework for Detectable Recovery
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Ease of manufacture
If simple algorithms are used for persistent data structures, then implementation is easier, but runtime overhead increases and performance decreases
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.
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.
3Reliability
If checkpoint operations are implemented to ensure crash consistency, then reliability improves, but device complexity and implementation difficulty increase
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.
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.
Data Source
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.


