Wait-freedom is the strongest and most desirable progress guarantee, under which any thread must make progress when given enough CPU steps. Wait-freedom is required for hard real-time, and desirable in many other scenarios. However, because wait-freedom is hard to achieve, we usually settle for the weaker lock-free progress guarantee, under which one of the active threads is guaranteed to make progress. With lock-freedom (and unlike wait-freedom), starvation of all threads but one is possible.
The linked-list data structure is fundamental and ubiquitous. Lock-free versions of the linked-list are well known. However, whether it is possible to design a practical wait-free linked-list has remained an open question. In this work we present a practical wait-free linked-list based on the CAS primitive. To improve performance further, we also extend this design using the fast-path-slow-path methodology. The proposed design has been implemented and measurements demonstrate performance competitive with that of Harris’s lock-free list, while still providing the desirable wait-free guarantee, required for real-time systems.
KeywordsLinearization Point State Array Fast Path Phase Number Insert Operation
Unable to display preview. Download preview PDF.
- 1.Chuong, P., Ellen, F., Ramachandran, V.: A universal construction for wait-free transaction friendly data structures. In: SPAA, pp. 335–344 (2010)Google Scholar
- 2.Fatourou, P., Kallimanis, N.D.: A highly-efficient wait-free universal construction. In: SPAA, pp. 325–334 (2011)Google Scholar
- 6.Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann (2008)Google Scholar
- 7.Kogan, A., Petrank, E.: Wait-free queues with multiple enqueuers and dequeuers. In: PPOPP, pp. 223–234 (2011)Google Scholar
- 8.Kogan, A., Petrank, E.: A methodology for creating fast wait-free data structures. In: PPOPP, pp. 141–150 (2012)Google Scholar
- 10.Timnat, S., Braginsky, A., Kogan, A., Petrank, E.: Wait-free linked-lists. In: PPOPP, pp. 309–310 (2012)Google Scholar
- 11.Timnat, S., Braginsky, A., Kogan, A., Petrank, E.: Wait-free linked-lists (2012), http://www.cs.technion.ac.il/%7eerez/%50apers/wfll-full.pdf
- 12.Valois, J.D.: Lock-free linked lists using compare-and-swap. In: PODC, pp. 214–222. ACM, New York (1995)Google Scholar