Byte-Addressable Persistent Memory Snapshot Versioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Byte-addressable persistent memory systems lack efficient mechanisms for implementing snapshots of individual data structures, making them vulnerable to data loss due to the absence of granular data management capabilities.

Innovation Solution

A user-level library configures the persistent memory as a software transactional memory system, enabling precise control over data access and changes at a byte-addressable granularity, using transaction descriptors, guard structures, and handle indirection to create and manage snapshots of data structures efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a snapshot is implemented as a full copy of the file or database, then data consistency and recovery capability are improved, but storage space consumption and system complexity increase significantly

Engineering Contradiction:
Improvedata recovery capabilityVSAvoidstorage space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the snapshot mechanism from the full data copy by implementing it at the datum level rather than file or database level. Each datum maintains its own version history independently, allowing selective versioning of individual data elements without duplicating entire datasets. This segmentation enables efficient storage by only versioning what is necessary.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the snapshot functionality from traditional file-system level operations and implements it directly at the persistent memory datum level. This extraction allows snapshots to be created without the overhead of file system structures, metadata, and associated data structures, significantly reducing storage consumption while maintaining recovery capability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Speed

If byte-addressable persistent memory is used for primary storage, then access speed and in-memory computing efficiency are improved, but data vulnerability increases due to lack of redundant copies

Engineering Contradiction:
Improvememory access speedVSAvoiddata protection capability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements preliminary versioning actions at the datum level, where each data element automatically maintains version information before potential loss events occur. This preliminary action of versioning individual datums ensures that recovery points are already established in memory, enabling rapid recovery without requiring external redundant storage systems.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements selective copying at the datum level rather than copying entire files or databases. Each datum that requires protection creates its own version copy within the persistent memory structure, providing redundancy only where needed while maintaining fast memory access for all data operations.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If snapshots are implemented at the file or database level, then data consistency is improved, but granular control over individual data structures is lost

Engineering Contradiction:
Improvedata consistencyVSAvoidgranular data control capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent segments the snapshot capability to operate at the individual datum level within data structures, allowing selective versioning of specific data elements while maintaining consistency of the overall structure. This enables fine-grained control where individual datums can be versioned independently based on their importance or change frequency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies versioning with different local qualities to different datums within the same data structure. Each datum can have its own versioning policy and snapshot behavior tailored to its specific requirements, while still maintaining the global consistency of the data structure through coordinated version management.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9411533B2Snapshots and versioning of transactional storage class memory
Publication Date: 2016.08.09 NETAPP INC
  • US9411533B2 patent drawing
  • US9411533B2 patent drawing
  • US9411533B2 patent drawing

AI summary

A system and method enables efficient implementation of snapshots of data organized as arbitrary data structures on a byte-addressable persistent memory of a host computer. A user-level library of the host computer may configure the persistent memory as a software transactional memory (STM) system defined by operations, such as a STM commit operation, that ensure safe and consistent storage of the data (i.e., the data structures) within a region of the persistent memory. The library may then cooperate with an application executing on the host computer to control access to a data structure, e.g., to change a datum, stored in the region of the persistent memory as a transaction using the STM commit operation. Within a context of the transaction, the library may precisely determine which byte or bytes of the datum have changed within the region, as well as how and when the bytes have changed. Armed with precise knowledge of the context of the transaction, the library may efficiently implement a snapshot (i.e., point-in-time copy) of the changed datum and its associated data structure at the granularity at which it was modified, e.g., at the byte-addressable granularity.