Advertisement

Anonymity in Distributed Read/Write Systems: An Introductory Survey

  • Michel RaynalEmail author
  • Jiannong Cao
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11028)

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.

Keywords

Agreement problem Anonymity Anonymous processes Anonymous shared memory Consensus Impossibility Linearization point Lower bound Mutual exclusindon Non-blocking Obstruction-freedom Progress condition Snapshot Wait-freedom 

Notes

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!

References

  1. 1.
    Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)CrossRefGoogle Scholar
  2. 2.
    Anderson, J.: Multi-writer composite registers. Distrib. Comput. 7(4), 175–195 (1994)CrossRefGoogle Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    Attiya, H., Gorbach, A., Moran, S.: Computing in totally anonymous asynchronous shared-memory systems. Inf. Comput. 173(2), 162–183 (2002)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Attiya, H., Snir, M., Warmuth, M.K.: Computing on an anonymous ring. J. ACM 35(4), 845–875 (1988)MathSciNetCrossRefGoogle Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    Bonnet, F., Raynal, M.: Anonymous asynchronous systems: the case of failure detectors. Distrib. Comput. 26(3), 141–158 (2013)CrossRefGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)CrossRefGoogle Scholar
  12. 12.
    Dijkstra, E.W.: Hierarchical ordering of sequential processes. Acta Inf. 1(1), 115–138 (1971)MathSciNetCrossRefGoogle Scholar
  13. 13.
    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_8CrossRefGoogle Scholar
  14. 14.
    Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)MathSciNetCrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computations. Distrib. Comput. 20, 165–177 (2007)CrossRefGoogle Scholar
  17. 17.
    Harel, D., Feldman, Y.: Algorithmics: The Spirit of Computing, p. 572. Springer, Heidelberg (2012)zbMATHGoogle Scholar
  18. 18.
    Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)CrossRefGoogle Scholar
  19. 19.
    Herlihy, M., Rajsbaum, S., Raynal, M.: Power and limits of distributed computing shared memory models. Theor. Comput. Sci. 509, 3–24 (2013)MathSciNetCrossRefGoogle Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    Herlihy, M.P., Shavit, N.: The topological structure of asynchronous computability. J. ACM 46(6), 858–923 (1999)MathSciNetCrossRefGoogle Scholar
  22. 22.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  23. 23.
    Imbs, D., Raynal, M.: Help when needed, but no more: an efficient partial snapshot algorithm. J. Parallel Distrib. Comput. 72(1), 1–12 (2012)CrossRefGoogle Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    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)Google Scholar
  26. 26.
    Knuth, D.E.: Algorithmic thinking and mathematical thinking. Am. Math. Mon. 92(3), 170–181 (1985)MathSciNetCrossRefGoogle Scholar
  27. 27.
    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 ComputingMathSciNetGoogle Scholar
  28. 28.
    Rabin, M.: The choice coordination problem. Acta Inf. 17(2), 121–134 (1982)MathSciNetCrossRefGoogle Scholar
  29. 29.
    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-2CrossRefzbMATHGoogle Scholar
  30. 30.
    Taubenfeld, G.: Synchronization algorithms and concurrent programming, p. 243. Pearson Education/Prentice Hall, London (2006). ISBN 0-131-97259-6Google Scholar
  31. 31.
    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_23CrossRefGoogle Scholar
  32. 32.
    Taubenfeld G.: Coordination without prior agreement. In: Proceedings 36th ACM Symposium on Principles of Distributed Computing (PODC 2017), pp. 325–334 (2017)Google Scholar
  33. 33.
    Wing, J.: Computational thinking. Commun. ACM 49(3), 33–35 (2006)CrossRefGoogle Scholar
  34. 34.
    Yamashita, M., Kameda, T.: Computing on anonymous networks: part I -characterizing the solvable cases. IEEE Trans. Parallel Distrib. Syst. 7(1), 69–89 (1996)CrossRefGoogle Scholar
  35. 35.
    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_32CrossRefGoogle Scholar
  36. 36.
    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)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Institut Universitaire de France and Univ Rennes, IRISA CNRS INRIARennesFrance
  2. 2.Department of ComputingPolytechnic UniversityHung HomHong Kong

Personalised recommendations