Persistent Memory Version Controller for Atomic Transaction Merging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems that utilize non-volatile memory for persistent storage face performance overhead due to data versioning operations like copying and merging, which increase processor and memory usage, especially when implementing copy-on-write policies for entire pages of data.
Innovation Solution
A version controller is introduced that offloads data versioning operations from the processor to a dedicated controller, which manages cache lines, allocates copy pages, and performs forward or backward merges based on a merge direction policy to minimize data movement and processing overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data versioning operations are performed using processor and memory resources, then version control functionality is achieved, but processor and memory overhead increases
Solution Approach 1:
The patent extracts data versioning operations from the processor by introducing a dedicated version control data structure that is separate from the main data storage. This version control structure includes version identifiers and pointers that track data versions independently, allowing the processor to focus on computation while version management is handled by the memory subsystem and controller.
Solution Approach 2:
The patent introduces a version control data structure as an intermediary between the processor and persistent memory. This intermediate structure manages version information without requiring the processor to directly handle versioning logic, reducing processor overhead while maintaining version control capabilities.
2Reliability
If copy-on-write policies are implemented for entire pages of data, then data versioning is maintained, but data movement and processing overhead increase
Solution Approach 1:
The patent segments the copy-on-write operation to only copy data when actually modified rather than copying entire pages preemptively. The version control data structure tracks which specific data elements have been modified, allowing selective copying only of changed portions, thereby reducing unnecessary data movement.
Solution Approach 2:
The patent applies partial copy-on-write by copying only the necessary portions of data that have been modified, rather than copying entire pages. The version control structure identifies exactly which data elements require copying, performing only the minimal necessary action to maintain version integrity.
Data Source
AI summary
Example implementations may relate to a version controller allocating a copy page in persistent memory upon receiving, from an application executing on a processor, a copy command to version an image page for an atomic transaction. The version controller may receive application data addressed to a cache line of the image page, and may write the application data to a cache line of the copy page corresponding to the addressed cache line of the image page. If the version controller receives a replace-type transaction commit command, the version controller may generate a final page by either forward merging the image page into the copy page or backward merging the copy page into the image page, depending a merge direction policy.


