Serializability of Transactions in Software Transactional Memory
نویسندگان
چکیده
The use of two-phase locking (2PL) to enforce serialization in today’s Software Transactional Memory (STM) systems leads to poor performance for programs with long-running transactions and considerable data sharing. We propose the use of ConflictSerializability (CS) instead of 2PL. The use of CS allows transactions to complete when they would have either stalled or aborted with 2PL, potentially leading to better performance. Multi-Versioning further increases concurrency by allowing transactions to read older versions of shared data. We implement an obstruction-free STM system that uses CS with multi-versioning and evaluate its performance on 32 processors using 3 standard benchmarks. Our evaluation shows that the use of CS significantly reduces abort rates in programs with high abort rates. This results in up to 2.5 times improvement in throughput, in spite of the overhead of testing for the CS of transactions at run-time. We also propose an adaptive approach that switches between 2PL and CS to mitigate the overhead in applications that have low abort rates.
منابع مشابه
Dependence-Aware Transactional Memory
Transactional memory is a promising programming model to enable high performance programs with reasonable programmer effort on the parallel architectures favored by modern processor manufacturers. This paper introduces dependence-aware transactions, a new method for maintaining the conflict serializability safety property of memory transactions while allowing significant freedom for an implemen...
متن کاملLock-free Serializable Transactions
Software transactional memory (STM) provides access to shared data with transactional properties. Existing STM use linearizability as their correctness criterion, although serializability allows more freedom in reordering the operations of committable transactions. Serializable transactions thus provide for more concurrency than linearizable transactions. Specifically, serializability allows re...
متن کاملTransactional Tasks: Parallelism in Software Transactions
Many programming languages, such as Clojure, Scala, and Haskell, support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. In this paper, we study the combination of futures and Software Transactional Memory. Currently, futures created within a transaction cannot access the transactional state safely...
متن کاملOrdering-Based Semantics for Software Transactional Memory
It has been widely suggested that memory transactions should behave as if they acquired and released a single global lock. Unfortunately, this behavior can be expensive to achieve, particularly when— as in the natural publication/privatization idiom—the same data are accessed both transactionally and nontransactionally. To avoid overhead, we propose selective strict serializability (SSS) semant...
متن کاملA Model of Transactional Programming
There has been a lot of recent research on transaction-based concurrent programming, aimed at offering an easier concurrent programming paradigm that enables programmers to better exploit the parallelism of modern multi-processor machines, such as multi-core microprocessors. We introduce Transactional State Machines (TSMs) as an abstract finite-data model of transactional shared-memory concurre...
متن کامل