Persistent Data Structures via Volatile-Nonvolatile Memory Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata access speedVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If data structures are made persistent across application executions, then data loss protection is improved, but device complexity increases

Engineering Contradiction:
Improvedata loss protectionVSAvoidpersistence mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #26Copying

3Reliability

If automatic versioning and persistence mechanisms are implemented, then data integrity is improved, but write-commit latency increases

Engineering Contradiction:
Improvedata integrityVSAvoidwrite-commit latency
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #16Partial or excessive action

4Ease of operation

If volatile memory is used for data structures, then ease of operation is improved, but protection against accidental overwriting deteriorates

Engineering Contradiction:
Improvedata structure manipulationVSAvoidoverwrite protection
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10817421B2Persistent data structures
Publication Date: 2020.10.27 SANDISK TECHNOLOGIES LLC
  • US10817421B2 patent drawing
  • US10817421B2 patent drawing
  • US10817421B2 patent drawing

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.