Advertisement

Practical Non-blocking Unordered Lists

  • Kunlong Zhang
  • Yujiao Zhao
  • Yajun Yang
  • Yujie Liu
  • Michael Spear
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8205)

Abstract

This paper introduces new lock-free and wait-free unordered linked list algorithms. The composition of these algorithms according to the fast-path-slow-path methodology, a recently devised approach to creating fast wait-free data structures, is nontrivial, suggesting limitations to the applicability of the fast-path-slow-path methodology. The list algorithms introduced in this paper are shown to scale well across a variety of benchmarks, making them suitable for use both as standalone lists, and as the foundation for wait-free stacks and non-resizable hash tables.

Keywords

Adaptive Algorithm Linearization Point Status Array Related Node Linked List 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Attiya, H., Hillel, E.: Built-In Coloring for Highly-Concurrent Doubly-Linked Lists. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 31–45. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  2. 2.
    Braginsky, A., Petrank, E.: Locality-Conscious Lock-Free Linked Lists. In: Proceedings of the 12th International Conference on Distributed Computing and Networking, Bangalore, India (January 2011)Google Scholar
  3. 3.
    Colvin, R., Groves, L., Luchangco, V., Moir, M.: Formal verification of a lazy concurrent list-based set algorithm. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 475–488. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Ellen, F., Fatourou, P., Kosmas, E., Milani, A., Travers, C.: Universal Constructions that Ensure Disjoint-Access Parallelism and Wait-Freedom. In: Proceedings of the 2012 ACM Symposium on Principles of Distributed Computing (July 2012)Google Scholar
  5. 5.
    Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking Binary Search Trees. In: Proceedings of the 29th ACM Symposium on Principles of Distributed Computing, Zurich, Switzerland (July 2010)Google Scholar
  6. 6.
    Fatourou, P., Kallimanis, N.D.: A Highly-Efficient Wait-Free Universal Construction. In: Proceedings of the 23rd ACM Symposium on Parallelism in Algorithms and Architectures, San Jose, CA (June 2011)Google Scholar
  7. 7.
    Fomitchev, M., Ruppert, E.: Lock-Free Linked Lists and Skip Lists. In: Proceedings of the 23rd ACM Symposium on Principles of Distributed Computing, St. John’s, Newfoundland, Canada (July 2004)Google Scholar
  8. 8.
    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
  9. 9.
    Heller, S., Herlihy, M.P., 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
  10. 10.
    Herlihy, M.: Wait-Free Synchronization. ACM Transactions on Programming Languages and Systems 13(1), 124–149 (1991)CrossRefGoogle Scholar
  11. 11.
    Herlihy, M.: A Methodology for Implementing Highly Concurrent Data Objects. ACM Transactions on Programming Languages and Systems 15(5), 745–770 (1993)CrossRefGoogle Scholar
  12. 12.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann (2008)Google Scholar
  13. 13.
    Herlihy, M.P., Wing, J.M.: Linearizability: A Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)CrossRefGoogle Scholar
  14. 14.
    Kogan, A., Petrank, E.: Wait-Free Queues with Multiple Enqueuers and Dequeuers. In: Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming, San Antonio, TX (February 2011)Google Scholar
  15. 15.
    Kogan, A., Petrank, E.: A Methodology for Creating Fast Wait-Free Data Structures. In: Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming, New Orleans, LA (February 2012)Google Scholar
  16. 16.
    Michael, M.: High Performance Dynamic Lock-Free Hash Tables and List-Based Sets. In: Proceedings of the 14th ACM Symposium on Parallel Algorithms and Architectures, Winnipeg, Manitoba, Canada (August 2002)Google Scholar
  17. 17.
    Michael, M.: Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects. IEEE Transactions on Parallel and Distributed Systems 15(6), 491–504 (2004)CrossRefGoogle Scholar
  18. 18.
    Michael, M.M., Scott, M.L.: Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In: Proceedings of the 15th ACM Symposium on Principles of Distributed Computing (May 1996)Google Scholar
  19. 19.
    O’Hearn, P.W., Rinetzky, N., Vechev, M.T., Yahav, E., Yorsh, G.: Verifying Linearizability with Hindsight. In: Proceedings of the 29th ACM Symposium on Principles of Distributed Computing, Zurich, Switzerland (July 2010)Google Scholar
  20. 20.
    Prokopec, A., Bronson, N., Bagwell, P., Odersky, M.: Concurrent Tries with Efficient Non-Blocking Snapshots. In: Proceedings of the 17th ACM Symposium on Principles and Practice of Parallel Programming (February 2012)Google Scholar
  21. 21.
    Sundell, H., Tsigas, P.: Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems. Journal of Parallel and Distributed Computing 65, 609–627 (2005)CrossRefMATHGoogle Scholar
  22. 22.
    Sundell, H., Tsigas, P.: Lock-Free Deques and Doubly Linked Lists. Journal of Parallel and Distributed Computing 68(7) (July 2008)Google Scholar
  23. 23.
    Timnat, S., Braginsky, A., Kogan, A., Petrank, E.: Wait-Free Linked-Lists. In: Baldoni, R., Flocchini, P., Binoy, R. (eds.) OPODIS 2012. LNCS, vol. 7702, pp. 330–344. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  24. 24.
    Valois, J.: Lock-free linked lists using compare-and-swap. In: Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, Ottowa, Ontario, Canada (August 1995)Google Scholar
  25. 25.
    Zhang, K., Zhao, Y., Yang, Y., Liu, Y., Spear, M.: Practical Non-blocking Unordered Lists. Technical Report LU-CSE-13-003, Lehigh University (2013)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Kunlong Zhang
    • 1
  • Yujiao Zhao
    • 1
  • Yajun Yang
    • 1
  • Yujie Liu
    • 2
  • Michael Spear
    • 2
  1. 1.Tianjin UniversityChina
  2. 2.Lehigh UniversityUSA

Personalised recommendations