Contention-sensitive data structures and algorithms

Gadi Taubenfeld

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


A contention-sensitive data structure is a concurrent data structure in which the overhead introduced by locking is eliminated in the common cases, when there is no contention, or when processes with non-interfering operations access it concurrently. When a process invokes an operation on a contention-sensitive data structure, in the absence of contention or interference, the process must be able to complete its operation in a small number of steps and without using locks. Using locks is permitted only when there is interference. We formally define the notion of contention-sensitive data structures, propose four general transformations that facilitate devising such data structures, and illustrate the benefits of the approach by implementing a contention-sensitive consensus algorithm, a contention-sensitive double-ended queue data structure, and a contention-sensitive election algorithm. Finally, we generalize the result to enable to avoid locking also when contention is low.

Original languageEnglish
Title of host publicationDistributed Computing - 23rd International Symposium, DISC 2009, Proceedings
Number of pages15
StatePublished - 2009
Externally publishedYes
Event23rd International Symposium on Distributed Computing, DISC 2009 - Elche, Spain
Duration: 23 Sep 200925 Sep 2009

Publication series

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


Conference23rd International Symposium on Distributed Computing, DISC 2009


  • Contention-sensitive
  • Disable-free
  • K-obstruction-free
  • Livelock
  • Locks
  • Prevention-free
  • Shortcut code
  • Starvation
  • Synchronization
  • Wait-free


Dive into the research topics of 'Contention-sensitive data structures and algorithms'. Together they form a unique fingerprint.

Cite this