Skip to main navigation Skip to search Skip to main content

Grasping the gap between blocking and non-blocking transactional memories

  • Purdue University

Research output: Contribution to journalArticlepeer-review

Abstract

Transactional memory (TM) is an inherently optimistic abstraction: it allows concurrent processes to execute sequences of shared-data accesses (transactions) speculatively, with an option of aborting them in the future. Early TM designs avoided using locks and relied on non-blocking synchronization to ensure obstruction-freedom: a transaction that encounters no step contention is not allowed to abort. However, it was later observed that obstruction-free TMs perform poorly and, as a result, state-of-the-art TM implementations are nowadays blocking, allowing aborts because of data conflicts rather than step contention. In this paper, we explain this shift in the TM practice theoretically, via complexity bounds. We prove a few important lower bounds on obstruction-free TMs. Then we present a lock-based TM implementation that beats all of these lower bounds. In sum, our results exhibit a considerable complexity gap between non-blocking and blocking TM implementations.

Original languageEnglish
Pages (from-to)1-16
Number of pages16
JournalJournal of Parallel and Distributed Computing
Volume101
DOIs
Publication statusPublished - 1 Mar 2017

Keywords

  • Blocking
  • Disjoint-access parallelism
  • Expensive synchronization
  • Invisible reads
  • Lower bounds
  • Memory stalls
  • Non-blocking
  • Obstruction-freedom
  • Perturbability
  • Transactional memory

Fingerprint

Dive into the research topics of 'Grasping the gap between blocking and non-blocking transactional memories'. Together they form a unique fingerprint.

Cite this