Cyclic Commit Protocol for Non-Volatile Storage Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile storage devices face challenges in maintaining data integrity and recovery during interrupted write operations, as existing methods require separate commit records for each transaction, leading to space and performance overheads.
Innovation Solution
A cyclic commit protocol is used to store relationships between transactions, eliminating the need for separate commit records by creating a cycle among intention records, allowing for efficient recovery by tracing links in metadata to determine committed transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate commit records are used for each transaction, then transaction commitment status can be tracked, but space overhead and performance overhead increase
Solution Approach 1:
The patent merges the commit record functionality into the existing intention record metadata structure. Instead of creating separate commit records, the intention record's metadata is extended to include cycle detection information (such as a cycle detection counter or cycle detection field) that can identify whether the intention record is part of a committed transaction cycle. This eliminates the need for additional commit record storage while maintaining transaction commitment tracking capability.
Solution Approach 2:
The intention record metadata structure is designed to serve multiple functions: it stores the original write intention information and simultaneously provides cycle detection capability for transaction commitment verification. By making the metadata multi-functional, the patent eliminates the need for separate dedicated commit records, thereby reducing storage overhead while maintaining reliability.
2Reliability
If separate commit records are used for each transaction, then transaction commitment status can be tracked, but performance overhead increases
Solution Approach 1:
The patent combines the commit tracking function with the intention record processing workflow. During normal operation, when intention records are written to storage, the cycle detection information is simultaneously updated in the same I/O operation. This eliminates the need for separate read-modify-write cycles that would be required if separate commit records were used, thereby improving performance while maintaining transaction commitment tracking.
Solution Approach 2:
The cycle detection information is prepared and stored preliminarily during the intention record write operation itself, rather than requiring a subsequent separate commit record write operation. This preliminary action ensures that transaction commitment status is already tracked when the data is written, eliminating performance overhead associated with deferred commit operations.
3Reliability
If traditional remap table with version numbers is used, then data integrity can be maintained, but recovery complexity increases
Solution Approach 1:
The patent implements a cycle detection mechanism that provides feedback during the recovery process. By examining the cycle detection information stored in the metadata of intention records, the recovery process can automatically identify committed transactions through cycle detection (such as detecting a complete cycle in the cycle detection counter or finding a cycle in the linked list of intention records). This feedback mechanism simplifies recovery by providing clear indicators of transaction commitment status without requiring complex analysis of version numbers and remap tables.
Solution Approach 2:
The intention records themselves contain the information needed for their own verification and recovery through the cycle detection mechanism. Each intention record's metadata includes cycle detection information that enables the record to effectively 'prove' its own commitment status as part of a transaction cycle. This self-service capability reduces recovery complexity by eliminating the need for external commit records or complex remap table analysis.
Data Source
AI summary
A cyclic commit protocol is used to store relationships between transactions and is used by the technology to determine whether a transaction is committed or not. The protocol allows creation of a cycle of transactions which can be used to recover the state of a storage device after a host failure by identifying the last committed version of intention records as committed or uncommitted based on the data stored in the physical pages.


