Transactional Locking II

@inproceedings{Dice2006TransactionalLI,
  title={Transactional Locking II},
  author={David Dice and Ori Shalev and Nir Shavit},
  booktitle={DISC},
  year={2006}
}
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
Runtime Tuning of STM Validation Techniques
TLDR
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
TLDR
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
The Theory of Transactional Memory
TLDR
This manuscript contains precise definitions of properties that capture the safety and progress semantics of TMs, as well as several fundamental results related to computability and complexity of TM implementations.
...
...

References

SHOWING 1-10 OF 29 REFERENCES
Design tradeoffs in modern software transactional memory systems
TLDR
This paper compares and analyzes two recent object-based STM systems, the DSTM of Herlihy et al. and the FSTm of Fraser, both of which support dynamic transactions, in which the set of objects to be modified is not known in advance.
Software transactional memory
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
...
...