Abstract
This paper is an algorithmic introduction to anonymity in asynchronous systems where processes communicate by reading and writing atomic read/write registers. Two types of anonymity are investigated: process-anonymity and memory-anonymity. Process-anonymity is when the processes cannot be distinguished the ones from the others (among other features, they do not have identifiers). Memory-anonymity is when the same memory locations can have different names at different processes (e.g., the location name A used by process \(p_i\) and the location name B used by another process \(p_j\) can correspond to the very same memory location X, and similarly for the names B at \(p_i\) and A at \(p_j\) which correspond to the same memory location \(Y\ne X\)). The paper shows how algorithms can cope with the uncertainty created by these two types of anonymity. To this end, taking examples from the literature, it presents anonymity-tolerant implementations of several concurrent objects, such as snapshot, consensus, and lock, each implementation satisfying a well-defined progress condition (obstruction-freedom, non-blocking, or wait-freedom). This paper must be considered as a short example-driven introductory tutorial on anonymous asynchronous read/write systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)
Anderson, J.: Multi-writer composite registers. Distrib. Comput. 7(4), 175–195 (1994)
Angluin, D., Local and global properties in networks of processes. In: Proceedings 12th Symposium on Theory of Computing (STOC 2080), pp. 82–93. ACM Press (1980)
Aspnes, J., Fich, F.E., Ruppert, E.: Relationship between broadcast and shared memory in reliable anonymous distributed systems. Distrib. Comput. 18(3), 209–219 (2006)
Attiya, H., Gorbach, A., Moran, S.: Computing in totally anonymous asynchronous shared-memory systems. Inf. Comput. 173(2), 162–183 (2002)
Attiya, H., Snir, M., Warmuth, M.K.: Computing on an anonymous ring. J. ACM 35(4), 845–875 (1988)
Bonnet, F., Raynal, M.: The price of anonymity: optimal consensus despite asynchrony, crash and anonymity. ACM Trans. Auton. Adapt. Syst. 6(4), 28 pages (2011)
Bonnet, F., Raynal, M.: Anonymous asynchronous systems: the case of failure detectors. Distrib. Comput. 26(3), 141–158 (2013)
Bouzid, Z., Raynal, M., Sutra, P.: Anonymous obstruction-free \((n, k)\)-set agreement with \((n-k+1)\) atomic read/write registers. Distrib. Comput. 31(2), 99–117 (2018)
Chandra, T.D., Polylog randomized wait-free consensus. In: Proceedings 15th ACM Symposium on Principles of Distributed Computing (PODC 1996), pp. 166–175. ACM Press (1996)
Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)
Dijkstra, E.W.: Hierarchical ordering of sequential processes. Acta Inf. 1(1), 115–138 (1971)
Fich, F.E., Luchangco, V., Moir, M., Shavit, N.: Obstruction-free algorithms can be practically wait-free. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 78–92. Springer, Heidelberg (2005). https://doi.org/10.1007/11561927_8
Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)
Garg, V.K., Ghosh, J., Symmetry in spite of hierarchy. In: Proceeding 10th International Conference on Distributed Computing Systems (ICDCS 1990), pp. 4–11. IEEE Computer Press (1990)
Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computations. Distrib. Comput. 20, 165–177 (2007)
Harel, D., Feldman, Y.: Algorithmics: The Spirit of Computing, p. 572. Springer, Heidelberg (2012)
Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)
Herlihy, M., Rajsbaum, S., Raynal, M.: Power and limits of distributed computing shared memory models. Theor. Comput. Sci. 509, 3–24 (2013)
Herlihy, M.P., Luchangco, V., Moir, M.: Obstruction-free synchronization: double-ended queues as an example. In: Proceedings 23th International IEEE Conference on Distributed Computing Systems (ICDCS 2003), pp. 522–529. IEEE Press (2003)
Herlihy, M.P., Shavit, N.: The topological structure of asynchronous computability. J. ACM 46(6), 858–923 (1999)
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)
Imbs, D., Raynal, M.: Help when needed, but no more: an efficient partial snapshot algorithm. J. Parallel Distrib. Comput. 72(1), 1–12 (2012)
Imbs, D., Raynal, M., Taubenfeld, G.: On asymmetric progress conditions. In: Proceedings 29th ACM Symposium on Principles of Distributed Computing (PODC 2010), pp. 55–64. ACM Press (2010)
Johnson, R.E., Schneider, F.B.: Symmetry and similarity in distributed systems. In: Proceedings 4th ACM Symposium on Principles of Distributed Computing (PODC 1985), pp. 13–22, ACM Press (1985)
Knuth, D.E.: Algorithmic thinking and mathematical thinking. Am. Math. Mon. 92(3), 170–181 (1985)
Loui, M.C., Abu-Amara, H.H.: Memory requirements for agreement among unreliable asynchronous processes. Adv. Comput. Res. 4, 163–183 (1987). Parallel and Distributed Computing
Rabin, M.: The choice coordination problem. Acta Inf. 17(2), 121–134 (1982)
Raynal, M.: Concurrent Programming: Algorithms, Principles and Foundations. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-32027-9. ISBN 978-3-642-32026-2
Taubenfeld, G.: Synchronization algorithms and concurrent programming, p. 243. Pearson Education/Prentice Hall, London (2006). ISBN 0-131-97259-6
Taubenfeld, G.: The computational structure of progress conditions. In: Lynch, N.A., Shvartsman, A.A. (eds.) DISC 2010. LNCS, vol. 6343, pp. 221–235. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15763-9_23
Taubenfeld G.: Coordination without prior agreement. In: Proceedings 36th ACM Symposium on Principles of Distributed Computing (PODC 2017), pp. 325–334 (2017)
Wing, J.: Computational thinking. Commun. ACM 49(3), 33–35 (2006)
Yamashita, M., Kameda, T.: Computing on anonymous networks: part I -characterizing the solvable cases. IEEE Trans. Parallel Distrib. Syst. 7(1), 69–89 (1996)
Yanagisawa, N.: Wait-Free solvability of colorless tasks in anonymous shared-memory model. In: Bonakdarpour, B., Petit, F. (eds.) SSS 2016. Lecture Notes in Computer Science, vol. 10083, pp. 415–429. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-49259-9_32
Zhu L.: A tight space bound for consensus. In: Proceedings 48th Annual ACM Symposium on Theory of Computing (STOC 2016), pp. 345–350. ACM Press (2016)
Acknowledgments
The first author was supported by the Franco-German DFG-ANR Project 14-CE35-0010-02 DISCMAT (devoted to connections between mathematics and distributed computing), the French ANR project 16-CE40-0023-03 DESCARTES (devoted to layered and modular structures in distributed computing), and Hong Kong Polytechnic University. The first author wants also to thank G. Taubenfeld for discussions on anonymous systems, and F. Taïani for his encouragement to write this article. A special thanks to the authors of the presented algorithms, without them this article would not exist!
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Raynal, M., Cao, J. (2019). Anonymity in Distributed Read/Write Systems: An Introductory Survey. In: Podelski, A., Taïani, F. (eds) Networked Systems. NETYS 2018. Lecture Notes in Computer Science(), vol 11028. Springer, Cham. https://doi.org/10.1007/978-3-030-05529-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-05529-5_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-05528-8
Online ISBN: 978-3-030-05529-5
eBook Packages: Computer ScienceComputer Science (R0)