Abstract
Linked lists and other list-based sets are one of the most ubiquitous data structures in computer science. They are useful in their own right and are frequently used as building blocks in other data structures. A linked list can be “unrolled” to combine multiple keys in each node; this improves storage density and overall performance. This organization also allows an operation to skip over nodes which cannot contain a key of interest. This paper introduces a new high-performance concurrent unrolled linked list with a lazy synchronization strategy that allows wait-free read operations. Most write operations under this strategy can complete by locking a single node. Experiments show up to a 300% improvement over other concurrent list-based sets.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Herlihy, M., Shavit, N.: On the nature of progress. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 313–328. Springer, Heidelberg (2011)
Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd edn. MIT Press (2009)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, 1st edn. Elsevier, Inc., Waltham (2012)
Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N., Shavit, N.N.: A lazy concurrent list-based set algorithm. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds.) OPODIS 2005. LNCS, vol. 3974, pp. 3–16. Springer, Heidelberg (2006)
Shao, Z., Reppy, J.H., Appel, A.W.: Unrolling lists. In: ACM Conference on LISP and Functional Programming (LFP 1994), pp. 185–195. ACM, New York (1994)
Demaine, E.: Cache-oblivious algorithms and data structures. In: Lecture Notes from the EEF Summer School on Massive Data Sets (2002)
Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware/Software Interface, 5th edn. Morgan Kaufmann Publishers Inc., San Francisco (2013)
Braginsky, A., Petrank, E.: Locality-conscious lock-free linked lists. In: Aguilera, M.K., Yu, H., Vaidya, N.H., Srinivasan, V., Choudhury, R.R. (eds.) ICDCN 2011. LNCS, vol. 6522, pp. 107–118. Springer, Heidelberg (2011)
Valois, J.D.: Lock-free linked lists using compare-and-swap. In: 14th ACM Symposium on Principles of Distributed Computing (PODC 1995), pp. 214–222. ACM, New York (1995)
Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: 14th ACM Symposium on Parallelism in Alorithms and Architectures (SPAA 2002), pp. 73–82. ACM, New York (2002)
Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)
Stroustrup, B.: The Design and Evolution of C++. ACM Press/Addison-Wesley Publishing Co., New York (1994)
Afek, Y., et al.: Atomic snapshots of shared memory. J. ACM 40, 873–890 (1993)
Anderson, J.H.: Composite registers. In: Distributed Computing, pp. 15–30 (1993)
Platz, K., Mittal, N., Venkatesan, S.: Practical concurrent unrolled linked lists using lazy synchronization. Technical Report UTDCS-09-14, The University of Texas at Dallas Computer Science Department (2014)
Michael, M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 491–504 (2004)
Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach, 5th edn. Morgan Kaufmann Publishers Inc., San Francisco (2011)
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2006)
Joung, Y.J.: Asynchronous group mutual exclusion (extended abstract). In: 17th ACM Symposium on Principles of Distributed Computing (PODC 1998), pp. 51–60. ACM, New York (1998)
Shalev, O., Shavit, N.: Split-ordered lists: Lock-free extensible hash tables. J. ACM 53, 379–405 (2006)
Herlihy, M.P., Lev, Y., Luchangco, V., Shavit, N.N.: A simple optimistic skiplist algorithm. In: Prencipe, G., Zaks, S. (eds.) SIROCCO 2007. LNCS, vol. 4474, pp. 124–138. Springer, Heidelberg (2007)
Fraser, K.: Practical Lock-Freedom. PhD thesis, Kings College, University of Cambridge (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Platz, K., Mittal, N., Venkatesan, S. (2014). Practical Concurrent Unrolled Linked Lists Using Lazy Synchronization. In: Aguilera, M.K., Querzoni, L., Shapiro, M. (eds) Principles of Distributed Systems. OPODIS 2014. Lecture Notes in Computer Science, vol 8878. Springer, Cham. https://doi.org/10.1007/978-3-319-14472-6_26
Download citation
DOI: https://doi.org/10.1007/978-3-319-14472-6_26
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14471-9
Online ISBN: 978-3-319-14472-6
eBook Packages: Computer ScienceComputer Science (R0)