Abstract
A fundamental technique used in the design of shared memory algorithms is tagging, where registers or other shared objects get augmented with additional values, called tags. In this paper, we provide a framework for tagging, and prove upper bounds for the complexity of this problem. We define new types that allow processes to generate tags infinitely often, store them to or retrieve them from other objects, use them safely, and release them when they are not needed any more. We present asymptotically optimally time efficient implementations of those types from objects of bounded size. In particular, our tags need only objects of logarithmic size, and operations on them can be performed in constant step complexity. In addition to the straightforward applications that use tags directly, our implementations can also be used for memory reclamation in a number of algorithms, such as those based on single compare-and-swap universal or read-copy-update.
This research was undertaken, in part, thanks to funding from the Canada Research Chairs program and from the Discovery Grants program of the Natural Sciences and Engineering Research Council of Canada (NSERC).
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)
Aghazadeh, Z., Golab, W., Woelfel, P.: Making objects writable. In: Proceeding of 33rd PODC, pp. 385–395 (2014)
Aghazadeh, Z., Woelfel, P.: Space- and time-efficient long-lived test-and-set objects. In: Aguilera, M.K., Querzoni, L., Shapiro, M. (eds.) OPODIS 2014. LNCS, vol. 8878, pp. 404–419. Springer, Heidelberg (2014)
Aghazadeh, Z., Woelfel, P.: On the time and space complexity of ABA prevention and detection. In: Proceeding of 34th PODC, pp. 193–202 (2015)
Alistarh, D., Censor-Hillel, K., Shavit, N.: Are lock-free concurrent algorithms practically wait-free? In: Proceeding of 46th ACM STOC, pp. 714–723 (2014)
Anderson, J.H., Moir, M.: Universal constructions for multi-object operations. In Proceeding of 14th PODC, pp. 184–193 (1995)
Attiya, H., Rachman, O.: Atomic snapshots in o(n log n) operations. SIAM J. Comp. 27(2), 319–340 (1998)
Brown, T.A.: Reclaiming memory for lock-free data structures: there has to be a better way. In: Proceeding of 34th PODC, pp. 261–270 (2015)
Clements, A.T., Kaashoek, M.F., Zeldovich, N.: Scalable address spaces using RCU balanced trees. In: Proceeding of 17th ASPLOS, pp. 199–210 (2012)
Dolev, D., Shavit, N.: Bounded concurrent time-stamping. SIAMJC 26(2), 418–455 (1997)
Dwork, C., Herlihy, M., Waarts, O.: Bounded round numbers. In: Proceeding of 12th PODC, pp. 53–64 (1993)
Dwork, C., Waarts, O.: Simple and efficient bounded concurrent timestamping or bounded concurrent timestamp systems are comprehensible! In: Proceeding of 24th ACM STOC, pp. 655–666 (1992)
Giakkoupis, G., Woelfel, P.: Randomized mutual exclusion with constant amortized RMR complexity on the DSM. In: Proceeding of 55th FOCS, pp. 504–513 (2014)
Golab, W., Hadzilacos, V., Hendler, D., Woelfel, P.: RMR-efficient implementations of comparison primitives using read and write operations. Distr. Comp. 25(2), 109–162 (2012)
Haldar, S., Vitányi, P.M.B.: Bounded concurrent timestamp systems using vector clocks. J. ACM 49(1), 101–126 (2002)
Herlihy, M., Luchangco, V., Martin, P.A., Moir, M.: Nonblocking memory management support for dynamic-sized data structures. ACM Trans. Comp. Syst. 23(2), 146–196 (2005)
IBM. IBM system/370 extended architecture, principles of operation. Technical report, 1983. Publication No. SA22-7085
Israeli, A., Li, M.: Bounded time-stamps. In: Proceeding of 28th FOCS, pp. 371–382 (1987)
Israeli, A., Pinhasov, M.: A concurrent time-stamp scheme which is linear in time and space. In: Proceeding of 6th WDAG, pp. 95–109 (1992)
Jayanti, P., Petrovic, S.: Efficient and practical constructions of LL/SC variables. In: Proceeding of 22nd PODC, pp. 285–294 (2003)
Lamport, L.: A new solution of Dijkstra’s concurrent programming problem. Commun. ACM 17(8), 453–455 (1974)
McKenney, P.E., Slingwine, J.D.: Read-copy update: using execution history to solveconcurrency problems. In: Proceeding of 10th PDCS, pp. 509–518 (1998)
Michael, M.: Hazard pointers: safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15(6), 491–504 (2004)
Michael, M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceeding of 15th PODC, pp. 267–275 (1996)
P. Tsigas and Y. Zhang. A simple, fast and scalable non-blocking concurrent FIFO queue for shared memory multiprocessor systems. In Proc. of 13th SPAA, pp. 134–143, 2001
Vitányi, P., Awerbuch, B.: Atomic shared register access by asynchronous hardware (detailed abstract). In: Proceeding of 27th FOCS, pp. 233–243 (1986)
Acknowledgements
We thank Lisa Higham for valueable discussions related to our abstraction, and Hagit Attiya for helpful literature pointers.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aghazadeh, Z., Woelfel, P. (2016). Upper Bounds for Boundless Tagging with Bounded Objects. In: Gavoille, C., Ilcinkas, D. (eds) Distributed Computing. DISC 2016. Lecture Notes in Computer Science(), vol 9888. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-53426-7_32
Download citation
DOI: https://doi.org/10.1007/978-3-662-53426-7_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-53425-0
Online ISBN: 978-3-662-53426-7
eBook Packages: Computer ScienceComputer Science (R0)