Persistent Data Structures via Volatile-Nonvolatile Memory Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data structures are volatile and lack protection against accidental overwriting, leading to potential data loss during power failures or improper shutdowns, and there is a need to persist data structures across application executions.
Innovation Solution
Implementing a system that associates a logical identifier with data structures, writes data to a volatile memory module, and copies it to a non-volatile storage medium, ensuring persistence through a persistent transaction log and auto-commit memory module, which enforces rules to prevent data overwriting and commits data to non-volatile storage upon triggers like power loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data structures are stored in volatile memory for fast access, then speed of data access is improved, but data persistence and protection against power failures deteriorates
Solution Approach 1:
The system segments data structures into multiple versions stored in non-volatile memory, with each version corresponding to a specific point in time. The volatile memory holds only the current active version for fast access, while historical versions are preserved in non-volatile storage, enabling both rapid data retrieval and persistence across power failures.
Solution Approach 2:
The system performs preliminary actions by automatically creating and storing historical versions of data structures in non-volatile memory before power failures can occur. The versioning mechanism proactively saves state information at defined intervals or upon significant changes, ensuring data persistence without requiring explicit user intervention during critical moments.
2Reliability
If data structures are made persistent across application executions, then data loss protection is improved, but device complexity increases
Solution Approach 1:
The persistence mechanism operates autonomously without requiring explicit user commands. The system automatically detects when data structures need to be preserved, creates appropriate versions, and manages storage in non-volatile memory. This self-service approach handles data persistence transparently, reducing the complexity burden on users while maintaining robust protection against data loss.
Solution Approach 2:
The system creates simplified copies of data structures in a versioned format stored in non-volatile memory. Rather than maintaining complex persistent data structures directly, the system generates representative copies that capture essential state information, enabling data loss protection through manageable replication rather than intricate persistence mechanisms.
3Reliability
If automatic versioning and persistence mechanisms are implemented, then data integrity is improved, but write-commit latency increases
Solution Approach 1:
The system applies partial versioning actions by creating persistent versions only when necessary - specifically when data structures undergo significant changes or at predefined checkpoints. Rather than versioning every minor modification, the system selectively creates persistent copies, reducing the overhead and latency associated with continuous versioning while maintaining data integrity for critical state changes.
4Ease of operation
If volatile memory is used for data structures, then ease of operation is improved, but protection against accidental overwriting deteriorates
Solution Approach 1:
The system creates protective copies of data structures in non-volatile memory with version identifiers. These copies serve as backup versions that can be restored if accidental overwriting occurs. The copying mechanism provides overwrite protection by preserving historical states without interfering with the ease of manipulating the current volatile data structures.
Data Source
AI summary
Apparatuses, systems, methods, and computer program products are disclosed for a persistent data structure. A method includes associating a logical identifier with a data structure. A method includes writing data of a data structure to a first region of a volatile memory module. A volatile memory module may be configured to ensure that data is preserved in response to a trigger. A method includes copying data of a data structure from a volatile memory module to a non-volatile storage medium such that the data of the data structure remains associated with a logical identifier.


