Nested Transaction Version Segmentation for False Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetransactional consistencyVSAvoidtransaction execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

2Productivity

If optimistic reads are used, then transaction execution speed improves, but false conflicts occur when nested children modify data

Engineering Contradiction:
Improvetransaction execution speedVSAvoidconflict detection accuracy
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentEP2176762B1Handling falsely doomed parents of nested transactions
Publication Date: 2020.03.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2176762B1 patent drawingFigure 1
  • EP2176762B1 patent drawingFigure 2
  • EP2176762B1 patent drawingFigure 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.