skip to main content
10.1145/2145816.2145835acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

A methodology for creating fast wait-free data structures

Published:25 February 2012Publication History

ABSTRACT

Lock-freedom is a progress guarantee that ensures overall program progress. Wait-freedom is a stronger progress guarantee that ensures the progress of each thread in the program. While many practical lock-free algorithms exist, wait-free algorithms are typically inefficient and hardly used in practice. In this paper, we propose a methodology called fast-path-slow-path for creating efficient wait-free algorithms. The idea is to execute the efficient lock-free version most of the time and revert to the wait-free version only when things go wrong. The generality and effectiveness of this methodology is demonstrated by two examples. In this paper, we apply this idea to a recent construction of a wait-free queue, bringing the wait-free implementation to perform in practice as efficient as the lock-free implementation. In another work, the fast-path-slow-path methodology has been used for (dramatically) improving the performance of a wait-free linked-list.

References

  1. Y. Afek and M. Merritt. Fast, wait-free (2k-1)-renaming. In ACM Symp. on Principles of Distr. Comp. (PODC), pages 105--112, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. H. Anderson and Y.-J. Kim. A new fast-path mechanism for mutual exclusion. Distrib. Comput., 14:17--29, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. Chuong, F. Ellen, and V. Ramachandran. A universal construction for wait-free transaction friendly data structures. In Proc. ACM Symposium on Parallel Algorithms (SPAA), pages 335--344, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. Non-blocking binary search trees. In Proc. ACM PODC, pages 131--140, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Fatourou and N. D. Kallimanis. A highly-efficient wait-free universal construction. In Proc. ACM Symposium on Parallel Algorithms (SPAA), pages 325--334, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. F. E. Fich, V. Luchangco, M. Moir, and N. Shavit. Obstruction-free algorithms can be practically wait-free. In Proc. Int. Conference on Distributed Computing (DISC), pages 78--92, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. L. Harris. A pragmatic implementation of non-blocking linked-lists. In Proc. Int. Conference on Distributed Computing (DISC), pages 300--314, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Hendler, I. Incze, N. Shavit, and M. Tzafrir. Flat combining and the synchronization-parallelism tradeoff. In Proc. ACM Symposium on Parallel Algorithms (SPAA), pages 355--364, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. J. Parallel Distrib. Comput., 70(1):1--12, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Herlihy. Wait-free synchronization. ACM Trans. Program. Lang. Syst., 13(1):124--149, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Herlihy. A methodology for implementing highly concurrent objects. ACM Trans. Program. Lang. Syst., 15(5):745--770, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free synchronization: Double-ended queues as an example. In Proc. Conf. on Distributed Computing Systems (ICDCS), pages 522--529, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Herlihy and J. M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Kogan and E. Petrank. Wait-free queues with multiple enqueuers and dequeuers. In Proc. ACM Symposium on Principles and Practice of Parallel Programming (PPOPP), pages 223--234, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. Ladan-Mozes and N. Shavit. An optimistic approach to lock-free fifo queues. Distributed Computing, 20(5):323--341, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  17. L. Lamport. A fast mutual exclusion algorithm. ACM Trans. Comput. Syst., 5:1--11, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Y. Levanoni and E. Petrank. An on-the-fly reference-counting garbage collector for java. ACM TOPLAS, 28(1):1--69, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst., 15(6):491--504, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proc. ACM Symp. on Principles of Distr. Comp. (PODC), pages 267--275, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Moir. Transparent support for wait-free transactions. In Proc. Conf. on Distributed Computing (DISC), 1998.Google ScholarGoogle Scholar
  22. M. Moir, D. Nussbaum, O. Shalev, and N. Shavit. Using elimination to implement scalable and lock-free FIFO queues. In Proc. ACM SPAA, pages 253--262, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Timnat, A. Braginsky, A. Kogan, and E. Petrank. Poster paper: Wait-free linked-lists. To appear in Proc. ACM Symposium on Principles and Practice of Parallel Programming (PPOPP), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. R. Treiber. Systems programming: Coping with parallelism. Technical report RJ-5118, IBM Almaden Research Center, 1986.Google ScholarGoogle Scholar
  25. P. Tsigas and Y. Zhang. A simple, fast and scalable non-blocking concurrent FIFO queue for shared memory multiprocessor systems. In Proc. ACM SPAA, pages 134--143, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J.-H. Yang and J. H. Anderson. A fast, scalable mutual exclusion algorithm. Distributed Computing, 9:1--9, 1994.Google ScholarGoogle Scholar
  27. P.-C. Yew, N.-F. Tzeng, and D. H. Lawrie. Distributing hot-spot addressing in large-scale multiprocessors. IEEE Trans. Comput., 36:388--395, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A methodology for creating fast wait-free data structures

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
        February 2012
        352 pages
        ISBN:9781450311601
        DOI:10.1145/2145816
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 47, Issue 8
          PPOPP '12
          August 2012
          334 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2370036
          Issue’s Table of Contents

        Copyright © 2012 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 February 2012

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of1,014submissions,23%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader