Serializability of Transactions in Software Transactional Memory

نویسندگان

  • Utku Aydonat
  • Tarek S. Abdelrahman
  • Edward S. Rogers
چکیده

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.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

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...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008