Advertisement

Practical Concurrent Unrolled Linked Lists Using Lazy Synchronization

  • Kenneth Platz
  • Neeraj Mittal
  • Subbarayan Venkatesan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8878)

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.

Keywords

concurrent data structures lazy synchronization linked lists 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 2.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd edn. MIT Press (2009)Google Scholar
  3. 3.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, 1st edn. Elsevier, Inc., Waltham (2012)Google Scholar
  4. 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)CrossRefGoogle Scholar
  5. 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)CrossRefGoogle Scholar
  6. 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. 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. 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)CrossRefGoogle Scholar
  9. 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. 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. 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)CrossRefGoogle Scholar
  12. 12.
    Stroustrup, B.: The Design and Evolution of C++. ACM Press/Addison-Wesley Publishing Co., New York (1994)Google Scholar
  13. 13.
    Afek, Y., et al.: Atomic snapshots of shared memory. J. ACM 40, 873–890 (1993)CrossRefzbMATHGoogle Scholar
  14. 14.
    Anderson, J.H.: Composite registers. In: Distributed Computing, pp. 15–30 (1993)Google Scholar
  15. 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. 16.
    Michael, M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15, 491–504 (2004)CrossRefGoogle Scholar
  17. 17.
    Hennessy, J.L., Patterson, D.A.: Computer Architecture: A Quantitative Approach, 5th edn. Morgan Kaufmann Publishers Inc., San Francisco (2011)Google Scholar
  18. 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. 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. 20.
    Shalev, O., Shavit, N.: Split-ordered lists: Lock-free extensible hash tables. J. ACM 53, 379–405 (2006)CrossRefMathSciNetGoogle Scholar
  21. 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)CrossRefGoogle Scholar
  22. 22.
    Fraser, K.: Practical Lock-Freedom. PhD thesis, Kings College, University of Cambridge (2003)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Kenneth Platz
    • 1
  • Neeraj Mittal
    • 1
  • Subbarayan Venkatesan
    • 1
  1. 1.The University of Texas at DallasRichardsonUSA

Personalised recommendations