skip to main content
research-article

A practical wait-free simulation for lock-free data structures

Published:06 February 2014Publication History
Skip Abstract Section

Abstract

Lock-free data structures guarantee overall system progress, whereas wait-free data structures guarantee the progress of each and every thread, providing the desirable non-starvation guarantee for concurrent data structures. While practical lock-free implementations are known for various data structures, wait-free data structure designs are rare. Wait-free implementations have been notoriously hard to design and often inefficient. In this work we present a transformation of lock-free algorithms to wait-free ones allowing even a non-expert to transform a lock-free data-structure into a practical wait-free one. The transformation requires that the lock-free data structure is given in a normalized form defined in this work. Using the new method, we have designed and implemented wait-free linked-list, skiplist, and tree and we measured their performance. It turns out that for all these data structures the wait-free implementations are only a few percent slower than their lock-free counterparts, while still guaranteeing non-starvation.

References

  1. Yehuda Afek, Dalia Dauber, and Dan Touitou. Wait-free made fast. In STOC, pages 538--547, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. James H. Anderson and Yong-Jik Kim. Fast and scalable mutual exclusion. In DISC, pages 180--194, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. James H. Anderson and Yong-Jik Kim. Adaptive mutual exclusion with local spinning. In DISC, pages 29--43, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. James H. Anderson and Mark Moir. Universal constructions for large objects. IEEE Trans. Parallel Distrib. Syst., 10(12):1317--1332, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Phong Chuong, Faith Ellen, and Vijaya Ramachandran. A universal construction for wait-free transaction friendly data structures. In SPAA, pages 335--344, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Tyler Crain, Damien Imbs, and Michel Raynal. Towards a universal construction for transaction-based multiprocess programs. In ICDCN, pages 61--75, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. Non-blocking binary search trees. In PODC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Panagiota Fatourou and Nikolaos D. Kallimanis. The redblue adaptive universal constructions. In DISC, pages 127--141, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Panagiota Fatourou and Nikolaos D. Kallimanis. A highly-efficient wait-free universal construction. In SPAA, pages 325--334, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Faith Ellen Fich, Victor Luchangco, Mark Moir, and Nir Shavit. Obstruction-free algorithms can be practically wait-free. In DISC, pages 78--92, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mikhail Fomitchev and Eric Ruppert. Lock-free linked lists and skip lists. In PODC'04, pages 50--59, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Michael Greenwald. Two-handed emulation: how to build non-blocking implementation of complex data-structures using dcas. In PODC, pages 260--269, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Rachid Guerraoui, Michal Kapalka, and Petr Kouznetsov. The weakest failure detectors to boost obstruction-freedom. Distributed Computing, 20(6):415--433, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  14. Timothy L. Harris. A pragmatic implementation of non-blocking linked-lists. In DISC'01, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Maurice Herlihy. A methodology for implementing highly concurrent data structures. In PPOPP, pages 197--206, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Maurice Herlihy. A methodology for implementing highly concurrent objects. ACM TOPLAS, 15(5):745--770, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Alex Kogan and Erez Petrank. Wait-free queues with multiple enqueuers and dequeuers. In PPOPP, pages 223--234, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Alex Kogan and Erez Petrank. A methodology for creating fast wait-free data structures. In PPOPP, pp. 141--150, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Leslie Lamport. A fast mutual exclusion algorithm. ACM Trans. Comput. Syst., 5(1):1--11, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Maged M. Michael. Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst., 15(6), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mark Moir and James H. Anderson. Wait-free algorithms for fast, long-lived renaming. Sci. Comput. Program., 25(1):1--39, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Gadi Taubenfeld. Contention-sensitive data structures and algorithms. In DISC, pages 157--171, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Shahar Timnat, Anastasia Braginsky, Alex Kogan, and Erez Petrank. Wait-free linked-lists. In OPODIS, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A practical wait-free simulation for lock-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

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 49, Issue 8
        PPoPP '14
        August 2014
        390 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2692916
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '14: Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
          February 2014
          412 pages
          ISBN:9781450326568
          DOI:10.1145/2555243

        Copyright © 2014 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 6 February 2014

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!