95

A Concurrency-Optimal List-Based Set

Abstract

Designing a highly concurrent data structure is an important challenge that is not easy to meet. As we show in this paper, even for a data structure as simple as a linked list used to implement the set type, the most efficient algorithms known so far may reject correct concurrent schedules. We propose a new algorithm based on a versioned try-lock that we show to achieve optimal concurrency: it only rejects concurrent schedules that violate correctness of the implemented type. We show empirically that reaching optimality does not induce a significant overhead. In fact, our implementation of the optimal algorithm outperforms both the Lazy Linked List and the Harris-Michael state-of-the-art algorithms.

View on arXiv
Comments on this paper