Abstract
We present a new wait-free implementation of a Fetch&Inc object shared by n processes from read-write registers and load-linked/store-conditional (LL/SC) objects. The step complexity of each FI operation is O(logn), which is optimal. Our implementation uses O( max {m,n}) objects, each of which stores O(logm) bits, where m is the number of FI operations that are performed. For large m, the number of objects can be reduced to O(n 2). Similar implementations of other objects, such as Fetch&Inc and Swap, are also obtained.
Our implementation uses a new object, called an Aggregator. It supports an operation which, if successful, puts a value into its in-buffer that can depend on the value that is currently there, an operation that copies the value in its in-buffer to its out-buffer, provided its out-buffer is empty, and an operation that empties its out-buffer. We show how to implement an Aggregator from a small constant number of LL/SC objects so that all three operations have constant step complexity.
This research was supported in part by Discovery Grants and the Canada Research Chair Program of the Natural Sciences and Engineering Research Council of Canada (NSERC), and in part by the HP Innovation Research Program.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Afek, Y., Dauber, D., Touitou, D.: Wait-free made fast. In: Proceedings of the 27th Annual ACM Symposium on Theory of Computing (STOC), pp. 538–547 (1995)
Afek, Y., Weisberger, E., Weisman, H.: A completeness theorem for a class of synchronization objects. In: Proceedings of the 12th SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), pp. 159–170 (1993)
Aghazadeh, Z., Golab, W., Woelfel, P.: Brief announcement: Resettable objects and efficient memory reclamation for concurrent algorithms. In: Proceedings of the 32nd SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC) (2013)
Alistarh, D., Aspnes, J., Censor-Hillel, K., Gilbert, S., Zadimoghaddam, M.: Optimal-time adaptive strong renaming, with applications to counting. In: Proceedings of the 30th SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), pp. 239–248 (2011)
Buss, J.F., Kanellakis, P.C., Ragde, P.L., Shvartsman, A.A.: Parallel algorithms with processor failures and delays. J. Algs. 20, 45–86 (1996)
Ellen, F., Ramachandran, V., Woelfel, P.: Efficient fetch-and-increment. In: Aguilera, M.K. (ed.) DISC 2012. LNCS, vol. 7611, pp. 16–30. Springer, Heidelberg (2012)
Herlihy, M.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13(1), 124–149 (1991)
Jayanti, P.: A time complexity lower bound for randomized implementations of some shared objects. In: Proceedings of the 9th SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), pp. 201–210 (1998)
Jayanti, P., Petrovic, S.: Efficiently implementing a large number of LL/SC objects. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds.) OPODIS 2005. LNCS, vol. 3974, pp. 17–31. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ellen, F., Woelfel, P. (2013). An Optimal Implementation of Fetch-and-Increment. In: Afek, Y. (eds) Distributed Computing. DISC 2013. Lecture Notes in Computer Science, vol 8205. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41527-2_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-41527-2_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41526-5
Online ISBN: 978-3-642-41527-2
eBook Packages: Computer ScienceComputer Science (R0)