Software Transactional Memory Lock Composition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software transactional memory (STM) systems do not typically support the interoperation between transactional and traditional locks, limiting their programming scenarios and requiring complex management of lock elision within transactions.

Innovation Solution

The STM system integrates traditional lock-based synchronization by acquiring and deferring traditional lock releases until the transaction commits or aborts, using state information to eliminate redundant operations and manage lock acquires and releases within transaction nests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional locks are acquired inside transactions, then concurrency control is improved, but lock management complexity increases

Engineering Contradiction:
Improveconcurrency controlVSAvoidlock management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by acquiring locks at the beginning of transactions and deferring their release until transaction commit or abort. This preliminary lock acquisition ensures that locks are held during the entire transaction duration, providing strong concurrency control while simplifying management through centralized lock handling at transaction boundaries rather than requiring explicit lock release operations within each transaction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The STM system acts as an intermediary between traditional lock-based synchronization and transactional memory operations. It mediates lock acquisition and release by intercepting lock operations within transactions, managing the lock state, and coordinating with the transaction commit/abort mechanism. This intermediary layer abstracts the complexity of lock management from individual transactions while maintaining reliable concurrency control.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If lock releases are deferred until transaction commit, then redundant operations are eliminated, but lock holding time increases

Engineering Contradiction:
Improveredundant operation eliminationVSAvoidlock holding time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system merges multiple lock release operations into a single deferred release action that occurs at transaction commit. Instead of releasing locks individually after each operation or at various points within transactions, all lock releases are consolidated and executed together when the transaction successfully commits. This merging eliminates redundant lock acquire-release cycles and reduces the total number of lock operations, improving productivity despite extended lock holding time during transaction execution.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8719515B2Composition of locks in software transactional memory
Publication Date: 2014.05.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8719515B2 patent drawing
  • US8719515B2 patent drawing
  • US8719515B2 patent drawing

AI summary

A software transactional memory (STM) system allows the composition of traditional lock based synchronization with transactions in STM code. The STM system acquires each traditional lock the first time that a corresponding traditional lock acquire is encountered inside a transaction and defers all traditional lock releases until a top level transaction in a transaction nest commits or aborts. The STM system maintains state information associated with traditional lock operations in transactions and uses the state information to eliminate deferred traditional lock operations that are redundant. The STM system integrates with systems that implement garbage collection.