A methodology for creating fast wait-free data structures

8 years 5 months ago
A methodology for creating fast wait-free data structures
Lock-freedom is a progress guarantee that ensures overall program progress. Wait-freedom is a stronger progress guarantee that ensures the progress of each thread in the program. While many practical lock-free algorithms exist, wait-free algorithms are typically inefficient and hardly used in practice. In this paper, we propose a methodology called fast-path-slow-path for creating efficient waitfree algorithms. The idea is to execute the efficient lock-free version most of the time and revert to the wait-free version only when things go wrong. The generality and effectiveness of this methodology is demonstrated by two examples. In this paper, we apply this idea to a recent construction of a wait-free queue, bringing the wait-free implementation to perform in practice as efficient as the lock-free implementation. In another work, the fast-path-slow-path methodology has been used for (dramatically) improving the performance of a wait-free linked-list. Categories and Subject Descript...
Alex Kogan, Erez Petrank
Added 25 Apr 2012
Updated 25 Apr 2012
Type Journal
Year 2012
Authors Alex Kogan, Erez Petrank
Comments (0)