A Wait-Free Deque With Polylogarithmic Step Complexity

Authors Shalom M. Asbell , Eric Ruppert

Thumbnail PDF


  • Filesize: 0.84 MB
  • 22 pages

Document Identifiers

Author Details

Shalom M. Asbell
  • Department of Electrical Engineering and Computer Science, York University, Toronto, Canada
Eric Ruppert
  • Department of Electrical Engineering and Computer Science, York University, Toronto, Canada


We thank the anonymous reviewers for their detailed comments. This research was funded by the Natural Sciences and Engineering Research Council of Canada and a Lassonde Undergraduate Research Award.

Cite AsGet BibTex

Shalom M. Asbell and Eric Ruppert. A Wait-Free Deque With Polylogarithmic Step Complexity. In 27th International Conference on Principles of Distributed Systems (OPODIS 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 286, pp. 17:1-17:22, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024)


The amortized step complexity of operations on all previous lock-free implementations of double-ended queues is linear in the number of processes. This paper presents the first concurrent double-ended queue where the amortized step complexity of each operation is polylogarithmic. Since a stack is a special case of a double-ended queue, this is also the first concurrent stack with polylogarithmic step complexity. The implementation is wait-free and the amortized step complexity is O(log² p + log q) per operation, where p is the number of processes and q is the size of the double-ended queue.

Subject Classification

ACM Subject Classification
  • Theory of computation → Data structures design and analysis
  • Theory of computation → Concurrent algorithms
  • Lock-Free
  • Wait-Free
  • Double-Ended Queue
  • Deque
  • Stack
  • Space-Bounded
  • Polylogarithmic
  • Linearizable


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Yehuda Afek, Dalia Dauber, and Dan Touitou. Wait-free made fast. In Proc. 27th ACM Symposium on Theory of Computing, pages 538-547, New York, NY, USA, 1995. URL: https://doi.org/10.1145/225058.225271.
  2. Ole Agesen, David Detlefs, Christine H. Flood, Alexander T. Garthwaite, Paul Alan Martin, Mark Moir, Nir Shavit, and Guy L. Steele Jr. DCAS-based concurrent deques. Theory of Computing Systems, 35(3):349-386, 2002. URL: https://doi.org/10.1007/S00224-002-1058-2.
  3. Nimar S. Arora, Robert D. Blumofe, and C. Greg Plaxton. Thread scheduling for multiprogrammed multiprocessors. Theory of Computing Systems, 34(2):115-144, 2001. URL: https://doi.org/10.1007/S00224-001-0004-Z.
  4. Hagit Attiya and Arie Fouren. Lower bounds on the amortized time complexity of shared objects. In Proc. 21st International Conference on Principles of Distributed Systems, volume 95 of LIPIcs, pages 16:1-16:18, 2017. URL: https://doi.org/10.4230/LIPICS.OPODIS.2017.16.
  5. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, chapter 17.1. MIT Press, fourth edition, 2022. Google Scholar
  6. David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, and Guy L. Steele Jr. Even better DCAS-based concurrent deques. In Proc. 14th International Conference on Distributed Computing, volume 1914 of LNCS, pages 59-73, 2000. URL: https://doi.org/10.1007/3-540-40026-5_4.
  7. Mike Dodds, Andreas Haas, and Christoph M. Kirsch. A scalable, correct time-stamped stack. In Proc. 42nd ACM Symposium on Principles of Programming Languages, pages 233-246, 2015. URL: https://doi.org/10.1145/2676726.2676963.
  8. James R. Driscoll, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. Making data structures persistent. Journal of Computer and System Sciences, 38(1):86-124, 1989. URL: https://doi.org/10.1016/0022-0000(89)90034-2.
  9. Matthew Graichen, Joseph Izraelevitz, and Michael L. Scott. An unbounded nonblocking double-ended queue. In Proc. 45th International Conference on Parallel Processing, pages 217-226, 2016. URL: https://doi.org/10.1109/ICPP.2016.32.
  10. Michael Barry Greenwald. Non-blocking Synchronization and System Design. PhD thesis, Stanford University, 1999. Available from URL: http://i.stanford.edu/TR/CS-TR-99-1624.html.
  11. Leonidas J. Guibas and Robert Sedgewick. A dichromatic framework for balanced trees. In Proc. 19th Annual Symposium on Foundations of Computer Science, pages 8-21, 1978. URL: https://doi.org/10.1109/SFCS.1978.3.
  12. Andreas Haas. Fast Concurrent Data Structures Through Timestamping. PhD thesis, University of Salzburg, 2015. Google Scholar
  13. Danny Hendler, Yossi Lev, Mark Moir, and Nir Shavit. A dynamic-sized nonblocking work stealing deque. Distributed Computing, 18(3):189-207, 2006. URL: https://doi.org/10.1007/S00446-005-0144-5.
  14. Danny Hendler, Nir Shavit, and Lena Yerushalmi. A scalable lock-free stack algorithm. Journal of Parallel and Distributed Computing, 70(1):1-12, 2010. URL: https://doi.org/10.1016/J.JPDC.2009.08.011.
  15. Maurice Herlihy. Wait-free synchronization. ACM Trans. Program. Lang. Syst., 13(1):124-149, 1991. URL: https://doi.org/10.1145/114005.102808.
  16. Maurice Herlihy, Victor Luchangco, and Mark Moir. Obstruction-free synchronization: Double-ended queues as an example. In Proc. 23rd International Conference on Distributed Computing Systems, pages 522-529, 2003. URL: https://doi.org/10.1109/ICDCS.2003.1203503.
  17. Prasad Jayanti. A time complexity lower bound for randomized implementations of some shared objects. In Proc. 17th ACM Symposium on Principles of Distributed Computing, pages 201-210, 1998. URL: https://doi.org/10.1145/277697.277735.
  18. Prasad Jayanti and Srdjan Petrovic. Logarithmic-time single deleter, multiple inserter wait-free queues and stacks. In Proc. 25th International Conference on Foundations of Software Technology and Theoretical Computer Science, volume 3821 of LNCS, pages 408-419, 2005. URL: https://doi.org/10.1007/11590156_33.
  19. Siddhartha V. Jayanti, Robert E. Tarjan, and Enric Boix-Adserà. Randomized concurrent set union and generalized wake-up. In Proc. ACM Symposium on Principles of Distributed Computing, pages 187-196, 2019. URL: https://doi.org/10.1145/3293611.3331593.
  20. Donald E. Knuth. The Art of Computer Programming, chapter 2.2.1. Addison-Wesley, third edition, 1997. Google Scholar
  21. Alex Kogan and Erez Petrank. A methodology for creating fast wait-free data structures. In Proc. 17th ACM Symposium on Principles and Practice of Parallel Programming, pages 141-150, 2012. URL: https://doi.org/10.1145/2145816.2145835.
  22. Nikita Koval, Alexander Fedorov, Maria Sokolova, Dmitry Tsitelov, and Dan Alistarh. Lincheck: A practical framework for testing concurrent data structures on JVM. In Proc. 35th International Conference on Computer Aided Verification, Part I, volume 13964 of LNCS, pages 156-169, 2023. URL: https://doi.org/10.1007/978-3-031-37706-8_8.
  23. Paul Martin, Mark Moir, and Guy Steele. DCAS-based concurrent deques supporting bulk allocation. Technical Report SMLI TR-2002-11, Sun Microsystems, oct 2002. Available from URL: https://dl.acm.org/doi/10.5555/1698157.
  24. Maged M. Michael. CAS-based lock-free algorithm for shared deques. In Proc. 9th International Euro-Par Conference on Parallel Processing, volume 2790 of LNCS, pages 651-660, 2003. URL: https://doi.org/10.1007/978-3-540-45209-6_92.
  25. Adam Morrison and Yehuda Afek. Fast concurrent queues for x86 processors. In Proc. ACM Symposium on Principles and Practice of Parallel Programming, pages 103-112, 2013. URL: https://doi.org/10.1145/2442516.2442527.
  26. Hossein Naderibeni and Eric Ruppert. A wait-free queue with polylogarithmic step complexity. In Proc. ACM Symposium on Principles of Distributed Computing, pages 124-134, 2023. URL: https://doi.org/10.1145/3583668.3594565.
  27. Niloufar Shafiei. Non-blocking array-based algorithms for stacks and queues. In Proc. 10th International Conference on Distributed Computing and Networking, volume 5408 of LNCS, pages 55-66, 2009. URL: https://doi.org/10.1007/978-3-540-92295-7_10.
  28. Håkan Sundell and Philippas Tsigas. Lock-free deques and doubly linked lists. Journal of Parallel and Distributed Computing, 68(7):1008-1020, 2008. URL: https://doi.org/10.1016/J.JPDC.2008.03.001.
  29. Robert Endre Tarjan. Data Structures and Network Algorithms, chapter 4.2. SIAM, Philadelphia, USA, 1983. URL: https://doi.org/10.1137/1.9781611970265.
  30. R.K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, 1986. Google Scholar