TY - GEN
T1 - Wait-free linked-lists
AU - Timnat, Shahar
AU - Braginsky, Anastasia
AU - Kogan, Alex
AU - Petrank, Erez
N1 - Funding Information: This work was supported by the Israeli Science Foundation grant No. 283/10.
PY - 2012
Y1 - 2012
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=84871670995&partnerID=8YFLogxK
U2 - https://doi.org/10.1007/978-3-642-35476-2_23
DO - https://doi.org/10.1007/978-3-642-35476-2_23
M3 - منشور من مؤتمر
SN - 9783642354755
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 330
EP - 344
BT - Principles of Distributed Systems - 16th International Conference, OPODIS 2012, Proceedings
T2 - 16th International Conference on Principles of Distributed Systems, OPODIS 2012
Y2 - 18 December 2012 through 20 December 2012
ER -