Transactional locking II

  • Authors:
  • Dave Dice;Ori Shalev;Nir Shavit

  • Affiliations:
  • Sun Microsystems Laboratories, Burlington, MA;,Sun Microsystems Laboratories, Burlington, MA;Sun Microsystems Laboratories, Burlington, MA

  • Venue:
  • DISC'06 Proceedings of the 20th international conference on Distributed Computing
  • Year:
  • 2006

Quantified Score

Hi-index 0.03

Visualization

Abstract

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-cycle, including those using malloc/free (2) unlike all other lock-based STMs it efficiently avoids periods of unsafe execution, that is, using its novel version-clock validation, user code is guaranteed to operate only on consistent memory states, and (3) in a sequence of high performance benchmarks, while providing these new properties, it delivered overall performance comparable to (and in many cases better than) that of all former STM algorithms, both lock-based and non-blocking. Perhaps more importantly, on various benchmarks, TL2 delivers performance that is competitive with the best hand-crafted fine-grained concurrent structures. Specifically, it is ten-fold faster than a single lock. We believe these characteristics make TL2 a viable candidate for deployment of transactional memory today, long before hardware transactional support is available.