Built-in Coloring for Highly-Concurrent Doubly-Linked Lists

Hagit Attiya, Eshcar Hillel

Research output: Contribution to journalArticlepeer-review

Abstract

This paper presents a novel approach for highly-concurrent nonblocking implementations of doubly-linked lists, based on dynamically maintaining a coloring of the nodes in the list. In these implementations, operations on non-adjacent nodes in the linked-list proceed without interfering with each other. Roughly speaking, the operations are implemented by acquiring nodes in the operation's data set, in the order of their colors, and then making the changes atomically. The length of waiting chains is restricted, thereby increasing concurrency, because the colors are taken from a small set. Operations carefully update the colors of the nodes they modify, so neighboring nodes in the list have different colors. A helping mechanism ensures progress in small neighborhoods of processes that keep taking steps. We use this approach in two new algorithms: CAS-Chromo uses an unary conditional primitive, cas, and allows insertions anywhere in the linked list and removals only at the ends, while DCAS-Chromo allows insertions and removals anywhere but uses a stronger primitive, dcas.

Original languageEnglish
Pages (from-to)729-762
Number of pages34
JournalTheory of Computing Systems
Volume52
Issue number4
DOIs
StatePublished - May 2013

Keywords

  • Asynchronous shared memory
  • Concurrent data structures
  • Double-ended queue
  • Doubly-linked list
  • Local nonblocking implementations
  • Priority queue

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computational Theory and Mathematics

Fingerprint

Dive into the research topics of 'Built-in Coloring for Highly-Concurrent Doubly-Linked Lists'. Together they form a unique fingerprint.

Cite this