Byte-Addressable Persistent Memory Replication via Software Transactional Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data replication methods in byte-addressable persistent memory are inefficient, as they copy large blocks of data over networks, wasting resources and time, especially in disaster recovery scenarios where only specific bytes need to be replicated.

Innovation Solution

A user-level library configures byte-addressable persistent memory as a software transactional memory system, allowing precise determination of changed data at the byte level, which is then replicated efficiently using splinters forwarded over a network to remote storage servers, utilizing an equivalence class technique for uniform distribution across disks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If page-based data replication is used to replicate changed data to remote machines, then data replication and disaster recovery are achieved, but large blocks of data (e.g., 12 KB) are copied over the network instead of only the actually changed bytes (e.g., 50 bytes), wasting network bandwidth and replication time

Engineering Contradiction:
Improvedisaster recovery capabilityVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments the data replication process into byte-level granularity instead of copying entire pages. By tracking which specific bytes have changed within a page and replicating only those bytes, the system achieves fine-grained segmentation of the replication unit. This is implemented through byte-addressable persistent memory that allows precise identification of modified bytes, thereby reducing network bandwidth consumption while maintaining disaster recovery capability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If page-based data replication is used to replicate changed data to remote machines, then data replication and disaster recovery are achieved, but replication time increases due to copying unnecessary data

Engineering Contradiction:
Improvedisaster recovery capabilityVSAvoiddata replication time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts only the essential changed bytes from each page and replicates them to remote machines, leaving the unchanged data behind. This extraction principle is implemented by monitoring which specific bytes have been modified in the byte-addressable persistent memory and transmitting only those bytes over the network. This dramatically reduces replication time by eliminating the transmission of unnecessary data while ensuring that all changed data is properly replicated for disaster recovery.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If byte-addressable persistent memory is used, then precise tracking of changed data at byte granularity is enabled, but the complexity of implementing safe and consistent data modification increases

Engineering Contradiction:
Improvechanged data identification precisionVSAvoidsoftware transactional memory system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces a software transactional memory (STM) system as an intermediary layer between the application and the byte-addressable persistent memory. This STM intermediary manages the complexity of byte-level tracking, consistency, and safety by providing high-level transactional operations. The STM handles the intricate details of identifying changed bytes, ensuring atomicity and consistency, while presenting a simplified interface to applications. This mediator approach reduces the perceived complexity for users while enabling precise byte-granularity tracking.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10158710B2Efficient replication of changes to a byte-addressable persistent memory over a network
Publication Date: 2018.12.18 NETAPP INC
  • US10158710B2 patent drawing
  • US10158710B2 patent drawing
  • US10158710B2 patent drawing

AI summary

A system and method for efficiently replicating data stored in 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 within a region of the persistent memory. The library may then cooperate with an application executing on the host computer to control access to the data, e.g., to change the data, as a transaction using the STM commit operation. Within a context of the transaction, the library may precisely determine which bytes of the data have changed within the region, as well as how and when the data bytes have changed. Armed with precise knowledge of the context of the transaction, the library may efficiently replicate the changed data at the byte-addressable granularity.