Transactional Memory Log Management in Persistent Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing transactional memory systems face inefficiencies and robustness issues due to the need for maintaining logs in volatile or non-volatile memory, leading to potential data corruption or slowed execution in the event of power failures.
Innovation Solution
A hardware transactional memory system that uses persistent memory to store transaction logs, allowing data to be written to caches during transactions and ensuring that transactions are either completed or rolled back atomically in the event of a power failure, without redirecting read operations to persistent memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If transaction logs are maintained in volatile memory, then memory access speed is fast, but data is lost in the event of a power failure causing memory corruption
Solution Approach 1:
The patent divides the memory system into two distinct segments: volatile memory (cache) for fast transaction execution and non-volatile memory (persistent storage) for reliable log maintenance. This segmentation allows each memory type to fulfill its optimal function - the cache provides high-speed access during transactions while the persistent storage ensures data survival through power failures. The system selectively redirects only log operations to persistent memory while keeping transactional operations in the fast cache.
Solution Approach 2:
The patent introduces a redirection mechanism that acts as an intermediary between the transactional memory system and the underlying storage hierarchy. This mediator dynamically determines whether log operations should be directed to volatile cache or persistent storage based on the operational context (transactional vs. non-transactional workloads). The redirection layer transparently handles the complexity of dual-memory management, allowing applications to benefit from both speed and reliability without direct intervention.
2Reliability
If transaction logs are maintained in non-volatile memory, then data is preserved in the event of a power failure, but memory accesses are redirected to slower non-volatile memory slowing down execution
Solution Approach 1:
The patent implements a dynamic memory management system that adapts the log storage location based on workload characteristics. During transactional workloads, log operations are redirected to persistent storage to ensure durability. During non-transactional workloads, log operations use the fast volatile cache. This dynamic switching optimizes performance by using the appropriate storage medium for each operational context, preventing the performance penalty from being applied continuously.
Solution Approach 2:
The system changes the storage parameter (volatile vs. non-volatile) based on the transactional state of the workload. When transactions are detected, the log storage parameter is changed to persistent memory for reliability. When no transactions are active, the parameter switches back to volatile memory for speed. This parameter switching allows the system to achieve both high performance and strong durability guarantees as needed.
Data Source
AI summary
Methods and apparatus are provided for executing a transaction in a data processing system, responsive to each memory access of the transaction, a transaction log is updated in a persistent memory. After execution of the transaction and when the transaction log is complete, the transaction log is marked as ‘pending’. When all values modified in the transaction have been written back to the persistent memory, the transaction log is marked as ‘free’. When, following a reboot, a transaction log is marked as ‘pending’, data stored in the transaction log is copied to the persistent memory at addresses indicated in the transaction log. After the copying is complete, the transaction log is marked as ‘free’. Cache values modified in the transaction may be written back to persistent memory when evicted, and values read in the transaction may be read from the cache rather than from the transaction log.


