Pessimistic software lock-elision

Yehuda Afek, Alexander Matveev, Nir Shavit

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Read-write locks are one of the most prevalent lock forms in concurrent applications because they allow read accesses to locked code to proceed in parallel. However, they do not offer any parallelism between reads and writes. This paper introduces pessimistic lock-elision (PLE), a new approach for non-speculatively replacing read-write locks with pessimistic (i.e. non-aborting) software transactional code that allows read-write concurrency even for contended code and even if the code includes system calls. On systems with hardware transactional support, PLE will allow failed transactions, or ones that contain system calls, to preserve read-write concurrency. Our PLE algorithm is based on a novel encounter-order design of a fully pessimistic STM system that in a variety of benchmarks spanning from counters to trees, even when up to 40% of calls are mutating the locked structure, provides up to 5 times the performance of a state-of-the-art read-write lock.

Original languageEnglish
Title of host publicationDistributed Computing - 26th International Symposium, DISC 2012, Proceedings
Pages297-311
Number of pages15
DOIs
StatePublished - 2012
Event26th International Symposium on Distributed Computing, DISC 2012 - Salvador, Brazil
Duration: 16 Oct 201218 Oct 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7611 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference26th International Symposium on Distributed Computing, DISC 2012
Country/TerritoryBrazil
CitySalvador
Period16/10/1218/10/12

Keywords

  • Lock-elision
  • Locks
  • Multicore
  • Software Transactional memory
  • Wait-free

Fingerprint

Dive into the research topics of 'Pessimistic software lock-elision'. Together they form a unique fingerprint.

Cite this