Transactional Memory Contention Management via Global Execution Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreaded computer systems, traditional locking mechanisms for managing contention between concurrent threads lead to issues like deadlocks, race conditions, and performance degradation due to frequent transactional aborts, especially when multiple threads cause mutual aborts.

Innovation Solution

A system and method for active contention management in transactional memory systems that employs concurrency throttling mechanisms, such as backoff schemes and k-exclusion, using global execution data to delay transactions and switch to mutual exclusion when necessary, to reduce contention and improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads execute critical sections concurrently using transactional memory, then parallelism and performance are improved, but transactional aborts increase due to conflicts

Engineering Contradiction:
ImproveparallelismVSAvoidtransactional abort rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system monitors global execution data including transactional abort rates and uses this feedback to dynamically adjust concurrency throttling parameters. When abort rates exceed thresholds, the system increases throttling to reduce contention, and when abort rates are low, it relaxes throttling to maximize parallelism.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The concurrency throttling mechanism dynamically adjusts the number of threads allowed to execute critical sections based on real-time system state. The system transitions from static locking to dynamic transactional memory with adaptive throttling, allowing the degree of parallelism to flex according to workload conditions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If concurrency throttling mechanisms are applied to reduce transactional aborts, then transaction success rate improves, but system throughput may decrease due to delayed executions

Engineering Contradiction:
Improvetransaction success rateVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system changes throttling parameters dynamically based on workload conditions. Instead of applying fixed throttling, it adjusts the number of concurrent transactions allowed based on observed abort rates, contention levels, and system state, optimizing the balance between success rate and throughput.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system performs preliminary actions by pre-calculating optimal throttling parameters based on historical data and current system state before executing transactions. This allows threads to be admitted or throttled in advance based on predicted contention levels, reducing actual aborts without excessive delays.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If global execution data is collected and processed for contention management, then contention reduction decisions are improved, but system complexity increases

Engineering Contradiction:
Improvecontention management effectivenessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service by having threads automatically update global execution data with their own transaction outcomes and by having the contention manager automatically adjust throttling parameters based on this data. This reduces the need for complex external control mechanisms while maintaining effective contention management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The global execution data structure serves multiple functions: it tracks transaction outcomes for abort analysis, monitors contention levels for throttling decisions, and provides statistics for performance optimization. This multi-functionality reduces the need for separate specialized data structures and simplifies the overall system architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8402464B2System and method for managing contention in transactional memory using global execution data
Publication Date: 2013.03.19 ORACLE AMERICAN INC
  • US8402464B2 patent drawing
  • US8402464B2 patent drawing
  • US8402464B2 patent drawing

AI summary

Transactional Lock Elision (TLE) may allow threads in a multi-threaded system to concurrently execute critical sections as speculative transactions. Such speculative transactions may abort due to contention among threads. Systems and methods for managing contention among threads may increase overall performance by considering both local and global execution data in reducing, resolving, and/or mitigating such contention. Global data may include aggregated and/or derived data representing thread-local data of remote thread(s), including transactional abort history, abort causal history, resource consumption history, performance history, synchronization history, and/or transactional delay history. Local and/or global data may be used in determining the mode by which critical sections are executed, including TLE and mutual exclusion, and/or to inform concurrency throttling mechanisms. Local and/or global data may also be used in determining concurrency throttling parameters (e.g., delay intervals) used in delaying a thread when attempting to execute a transaction and/or when retrying a previously aborted transaction.