Nested Transaction Version Segmentation for False Conflict Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software transactional memory systems experience spurious re-executions of parent transactions due to falsely doomed nested child transactions, where the parent appears to conflict with another transaction despite the conflict being caused by the nested child's rollback operation.
Innovation Solution
The solution involves tracking the release count of write locks for nested transactions using a write abort compensation map, aggregating these counts during rollback, and validating parent transactions to determine if an optimistic read failure is due to the nested child's operations, thereby avoiding false dooming of parent transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If nested transactions increment version numbers on rollback, then transactional consistency is maintained, but parent transactions experience spurious re-executions due to false conflict detection
Solution Approach 1:
The patent segments the version number into two distinct components: a high-order portion representing the parent transaction's version and a low-order portion representing the nested child transaction's version. This segmentation allows the system to track and differentiate between version changes caused by parent transactions versus those caused by nested child transactions, preventing false conflict detection while maintaining transactional consistency.
2Productivity
If optimistic reads are used, then transaction execution speed improves, but false conflicts occur when nested children modify data
Solution Approach 1:
The patent extends the version number from a single-dimensional counter to a multi-dimensional structure by dividing it into high-order and low-order portions. The high-order portion tracks parent transaction versions while the low-order portion tracks nested child transaction versions. This dimensional expansion allows optimistic reads to proceed efficiently while accurately distinguishing between legitimate conflicts and false conflicts caused by nested children.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
[029] Various technologies and techniques are disclosed for detecting falsely doomed parent transactions of nested children in transactional memory systems. When rolling back nested transactions, a release count is tracked each time that a write lock is released due to rollback for a given nested transaction. For example, a write abort compensation map can be used to track the release count for each nested transaction. The number of times the nested transactions releases a write lock is recorded in their respective write abort compensation map. The release counts can be used during a validation of a parent transaction to determine if a failed optimistic read is really valid. If an aggregated release count for the nested children transactions accounts for the difference in version numbers exactly, then the optimistic read is valid.