Transaction Interlocks for Distributed Storage Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face challenges in maintaining data coherency, particularly in scenarios like power failures or system crashes, which can lead to data loss or inconsistency during atomic updates in pipelined architectures.
Innovation Solution
The implementation of a storage unit with non-persistent and persistent memory, coupled with a transaction engine and a transaction interlock, ensures data coherency by transferring logical records as atomic updates, even in the presence of events like power loss or system crashes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a pipelined architecture is used to transfer data from volatile memory to nonvolatile memory, then processing efficiency and write speed are improved, but data coherency and reliability are worsened during power failures or system crashes
Solution Approach 1:
The patent implements a transaction engine that prepares and validates atomic update operations before execution, using a command queue to stage transactions and an interlock mechanism to pre-check system state. This preliminary preparation ensures that when power failures or crashes occur, only complete and validated transactions are committed, maintaining data coherency while allowing efficient pipelined processing of pre-validated operations.
Solution Approach 2:
The transaction engine acts as an intermediary layer between the pipelined data transfer mechanism and the storage media. It introduces atomic update operations that wrap individual logical records, ensuring that each record transfer is either completely committed or completely aborted. This intermediary mechanism resolves the contradiction by enabling high-speed pipelined transfers while guaranteeing data coherency through atomicity boundaries.
2Reliability
If atomic updates are implemented to ensure data coherency, then reliability is improved, but system complexity increases
Solution Approach 1:
The transaction engine is segmented into distinct functional components: a command queue for transaction staging, an interlock mechanism for state validation, and atomic update execution units. This segmentation allows each component to handle a specific aspect of atomicity enforcement, reducing overall system complexity by creating modular, manageable units rather than a monolithic complex system.
Solution Approach 2:
The transaction interlock mechanism provides self-service by automatically checking system state and transaction validity without requiring external intervention. When a power failure or crash occurs, the interlock autonomously determines whether to commit or abort transactions based on pre-established criteria, eliminating the need for complex external recovery protocols and reducing system complexity.
3Reliability
If transaction interlocks are used to guarantee atomic update completion, then data integrity is improved, but processing speed is worsened
Solution Approach 1:
The command queue performs preliminary validation and staging of atomic update transactions before they reach the interlock mechanism. By pre-processing and organizing transactions in advance, the system minimizes the actual interlock wait time during critical operations, maintaining data integrity while reducing the perceived processing delay.
Solution Approach 2:
The transaction engine maintains continuous processing by allowing multiple atomic updates to be staged in the command queue simultaneously. While one transaction is being validated by the interlock, other transactions continue to be prepared and organized, ensuring that the useful action of transaction processing continues without interruption, thereby maintaining processing speed alongside data integrity.
Data Source
AI summary
A method for a transactional commit in a storage unit is provided. The method includes receiving a logical record from a storage node into a transaction engine of a storage unit of the storage node and writing the logical record into a data structure of the transaction engine. The method includes writing, to a command queue of the transaction engine, an indication to perform an atomic update using the logical record and transferring each portion of the logical record from the data structure of the transaction engine to non-persistent memory of the storage unit as a committed transaction. A storage unit for a storage system is also provided.


