Abstract
In this paper, we describe a novel algorithm to create a concurrent wait-free stack. To the best of our knowledge, this is the first wait-free algorithm for a general purpose stack. In the past, researchers have proposed restricted wait-free implementations of stacks, lock-free implementations, and efficient universal constructions that can support wait-free stacks. The crux of our wait-free implementation is a fast pop operation that does not modify the stack top; instead, it walks down the stack till it finds a node that is unmarked. It marks it but does not delete it. Subsequently, it is lazily deleted by a cleanup operation. This operation keeps the size of the stack in check by not allowing the size of the stack to increase beyond a factor of W as compared to the actual size. All our operations are wait-free and linearizable.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Afek, Y., Gafni, E., Morrison, A.: Common2 extended to stacks and unbounded concurrency. Distrib. Comput. 20(4), 239–252 (2007)
Bar-Nissan, G., Hendler, D., Suissa, A.: A dynamic elimination-combining stack algorithm. In: Fernà ndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 544–561. Springer, Heidelberg (2011)
David, M., Brodsky, A., Fich, F.E.: Restricted stack implementations. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 137–151. Springer, Heidelberg (2005)
Fatourou, P., Kallimanis, N.D.: A highly-efficient wait-free universal construction. In: SPAA 2011, pp. 325–334. ACM (2011)
Goel, S., Aggarwal, P., Sarangi, S.: full paper: “a wait-free stack". http://arxiv.org/abs/1510.00116
Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures, pp. 355–364. ACM (2010)
Hendler, D., Kutten, S.: Constructing shared objects that are both robust and high-throughput. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 428–442. Springer, Heidelberg (2006)
Hendler, D., Kutten, S., Michalak, E.: An adaptive technique for constructing robust and high-throughput shared objects-technical report (2010)
Hendler, D., Shavit, N., Yerushalmi, L.: A scalable lock-free stack algorithm. In: SPAA 2004, pp. 206–215. ACM (2004)
Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Elsevier, Burlington (2012)
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)
Shavit, N., Zemach, A.: Combining funnels: a dynamic approach to software combining. J. Parallel Distrib. Comput. 60(11), 1355–1387 (2000)
Treiber, R.K.: Systems programming: coping with parallelism. Thomas J. Watson Research Center, International Business Machines Incorporated (1986)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Goel, S., Aggarwal, P., Sarangi, S.R. (2016). A Wait-Free Stack. In: Bjørner, N., Prasad, S., Parida, L. (eds) Distributed Computing and Internet Technology. ICDCIT 2016. Lecture Notes in Computer Science(), vol 9581. Springer, Cham. https://doi.org/10.1007/978-3-319-28034-9_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-28034-9_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-28033-2
Online ISBN: 978-3-319-28034-9
eBook Packages: Computer ScienceComputer Science (R0)