| | |
Summary: Builtin Coloring for HighlyConcurrent DoublyLinked Lists #
(Preliminary Version)
Hagit Attiya and Eshcar Hillel
Department of Computer Science
Technion
September 11, 2006
Abstract
This paper presents a novel approach for lockfree 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 DCASbased implementation of a doublylinked list allowing insertions and
removals anywhere, and CASbased 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
|