Transactional Locking II

  title={Transactional Locking II},
  author={David Dice and Ori Shalev and Nir Shavit},
The transactional memory programming paradigm is gaining momentum as the approach of choice for replacing locks in concurrent programming. This paper introduces the transactional locking II (TL2) algorithm, a software transactional memory (STM) algorithm based on a combination of commit-time locking and a novel global version-clock based validation technique. TL2 improves on state-of-the-art STMs in the following ways: (1) unlike all other STMs it fits seamlessly with any system's memory life… 

Time-Based Software Transactional Memory

The first time-based STM algorithm, the Lazy Snapshot Algorithm (LSA), is formally introduced and its semantics and the impact of its design parameters, notably multiversioning and dynamic snapshot extension are studied.

Relaxing concurrency control in transactional memory

This work proposes the use of a more relaxed concurrency control algorithm based on the conflict-serializability (CS) model that improves the performance of applications with long transactions and high abort rates and argues that these improvements come with little additional complexity and require no changes to the transactional programming model.

Hybrid transactional memory to accelerate safe lock-based transactions

This approach is the first Hy-TM to combine three desirable features: execution whether or not the architectural support is present, execution of a single common code path, and immunity, for correctly synchronized programs, from the “privatization” problem.

Performance Comparison of Software Transactional Memory Implementations

The empirical evaluations done as part of this thesis conclude that Ennals’ STM has an edge over TL2 and FSTM, as it performs consistently well on low and high contention settings, and suggest that lock-based STMs use less memory than lock-free STMs due to better cache locality.

Read-Write Lock Allocation in Software Transactional Memory

This paper introduces two optimization techniques to overcome the overhead of the global clock - Read-Write Lock Allocation (RWLA) and an adaptive technique which dynamically selects either baseline scheme or RWLA.

Lock-free and scalable multi-version software transactional memory

A new lock-free commit algorithm is presented that allows write transactions to proceed in parallel, by allowing them to run their validation phase independently of each other, and by resorting to helping from threads that would otherwise be waiting to commit, during the write-back phase.

Hybrid Transactional Memory with Pessimistic Concurrency Control

Transactional Memory (TM) intends to simplify the design and implementation of the shared-memory data structures used in parallel software. Many Software TM systems are based on writer-locks to

Runtime Tuning of STM Validation Techniques

This paper presents a runtime tuning strategy that uses profiling to determine the most profitable validation technique for Software Transactional Memory (STM), and shows that it outperforms both of the above techniques by up to 18% in long-running, dynamically-changing scenarios.

Code profiling and optimization in transactional memory systems

A system in which code profiling in a simulated hardware implementation of Transactional Memory is used to characterize a transactional application, which forms the basis for the automated tuning of the underlying speculative system for the efficient execution of that particular application is proposed.

Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency




Software transactional memory

STM is used to provide a general highly concurrent method for translating sequential object implementations to non-blocking ones based on implementing a k-word compare&swap STM-transaction, and outperforms Herlihy’s translation method for sufficiently large numbers of processors.

Adaptive Software Transactional Memory

This paper considers four dimensions of the STM design space and presents a new Adaptive STM (ASTM) system that adjusts to the offered workload, allowing it to match the performance of the best known existing system on every tested workload.

What Really Makes Transactions Faster

It is found that it was the lower latency of the hand-crafted data structures that made them faster than STMs, and not better contention management or optimizations based on the programmer’s understanding of the particulars of the structure.

Virtualizing transactional memory

This paper proposes virtual transactional memory (VTM), a user-transparent system that shields the programmer from various platform-specific resource limitations and maintains the performance advantage of hardware transactions, incurs low overhead in time, and has modest costs in hardware support.

McRT-STM: a high performance software transactional memory system for a multi-core runtime

A software transactional memory (STM) system that is part of McRT, an experimental Multi-Core RunTime, and a detailed performance analysis of various STM design tradeoffs such as pessimistic versus optimistic concurrency, undo logging versus write buffering, and cache line based versus object based conflict detection are presented.

Transactional memory: architectural support for lock-free data structures

Simulation results show that transactional memory matches or outperforms the best known locking techniques for simple benchmarks, even in the absence of priority inversion, convoying, and deadlock.

Concurrent programming without locks

This article presents three APIs which make it easier to develop nonblocking implementations of arbitrary data structures, and compares the performance of the resulting implementations against one another and against high-performance lock-based systems.

Implementing Fast Java Monitors with Relaxed-Locks

  • D. Dice
  • Computer Science
    Java Virtual Machine Research and Technology Symposium
  • 2001
The Relaxed-Lock protocol is unique in that it admits a benign data race in the monitor unlock path but detects and recovers from the race and thus maintains correct mutual exclusion.

A Lazy Snapshot Algorithm with Eager Validation

This paper formally introduces a lazy snapshot algorithm that verifies at each object access that the view observed by a transaction is consistent and demonstrates that the performance is quite competitive by comparing other STMs with an STM that uses the algorithm.

Transactional memory coherence and consistency

To explore the costs and benefits of TCC, the characteristics of an optimal transaction-based memory system are studied, and how different design parameters could affect the performance of real systems are examined.