Skip to main content

Practical Concurrent Unrolled Linked Lists Using Lazy Synchronization

  • Conference paper
Principles of Distributed Systems (OPODIS 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8878))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd edn. MIT Press (2009)

    Google Scholar 

  3. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, 1st edn. Elsevier, Inc., Waltham (2012)

    Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Demaine, E.: Cache-oblivious algorithms and data structures. In: Lecture Notes from the EEF Summer School on Massive Data Sets (2002)

    Google Scholar 

  7. Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware/Software Interface, 5th edn. Morgan Kaufmann Publishers Inc., San Francisco (2013)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Stroustrup, B.: The Design and Evolution of C++. ACM Press/Addison-Wesley Publishing Co., New York (1994)

    Google Scholar 

  13. Afek, Y., et al.: Atomic snapshots of shared memory. J. ACM 40, 873–890 (1993)

    Article  MATH  Google Scholar 

  14. Anderson, J.H.: Composite registers. In: Distributed Computing, pp. 15–30 (1993)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Michael, M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 491–504 (2004)

    Article  Google Scholar 

  17. Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach, 5th edn. Morgan Kaufmann Publishers Inc., San Francisco (2011)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. Shalev, O., Shavit, N.: Split-ordered lists: Lock-free extensible hash tables. J. ACM 53, 379–405 (2006)

    Article  MathSciNet  Google Scholar 

  21. 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)

    Chapter  Google Scholar 

  22. Fraser, K.: Practical Lock-Freedom. PhD thesis, Kings College, University of Cambridge (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics