Built-in coloring for highly-concurrent doubly-linked lists

  • Authors:
  • Hagit Attiya;Eshcar Hillel

  • Affiliations:
  • Department of Computer Science, Technion;Department of Computer Science, Technion

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

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents a novel approach for lock-free implementations of concurrent data structures, based on dynamically maintaining a coloring of the data structure's items. Roughly speaking, the data structure's operations are implemented by acquiring virtual locks on several items of the data structure and then making the changes atomically; this simplifies the design and provides clean functionality. The virtual locks are managed with cas or dcas primitives, and helping is used to guarantee progress; virtual locks are acquired according to a coloring order that decreases the length of waiting chains and increases concurrency. Coming back full circle, the legality of the coloring is preserved by having operations correctly update the colors of the items they modify. The benefits of the scheme are demonstrated with new nonblocking implementations of doubly-linked list data structures: A dcas-based implementation of a doubly-linked list allowing insertions and removals anywhere, and cas-based implementations in which removals are allowed only at the ends of the list (insertions can occur anywhere). The implementations possess several attractive features: they do not bound the list size, they do not leave accessible chains of garbage nodes, and they allow operations to proceed concurrently, without interfering with each other, if they are applied to non-adjacent nodes in the list.