Distributed Computing

, Volume 31, Issue 2, pp 99–117 | Cite as

Anonymous obstruction-free (nk)-set agreement with \(n-k+1\) atomic read/write registers

  • Zohir Bouzid
  • Michel Raynal
  • Pierre Sutra


The k-set agreement problem is a generalization of the consensus problem. Namely, assuming that each process proposes a value, every non-faulty process must decide one of the proposed values, under the constraint that at most k different values are decided. This is a hard problem in the sense that it cannot be solved in a pure read/write asynchronous system, in which k or more processes may crash. One way to sidestep this impossibility result consists in weakening the termination property, requiring only that a process decides if it executes alone during a long enough period of time. This is the well-known obstruction-freedom progress condition. Consider a system of n anonymous asynchronous processes that communicate through atomic read/write registers, and such that any number of them may crash. This paper addresses and solves the challenging open problem of designing an obstruction-free k-set agreement algorithm with only \((n-k+1)\) atomic registers. From a shared memory cost point of view, our algorithm is the best algorithm known to date, thereby establishing a new upper bound on the number of registers needed to solve this problem. For the consensus case \((k=1)\), the proposed algorithm is up to an additive factor of 1 close to the best known lower bound. Further, the paper extends this algorithm to obtain an x-obstruction-free solution to the k-set agreement problem that employs \((n-k+x)\) atomic registers (with \(1 \le x\le k<n\)), as well as a space-optimal solution for the repeated version of k-set agreement. Using this last extension, we prove that n registers are enough for every colorless task that is obstruction-free solvable with identifiers and any number of registers.


Anonymous processes Asynchronous system Atomic read/write register Bounded number of registers Consensus Distributed algorithm Distributed computability Fault-tolerance k-set agreement Obstruction-freedom Process crash Repeated k-set agreement Upper bound Colorless task 



The authors want to thank Rati Gelashvili for fruitful comments on a preliminary version of the paper, which gave rise to Sect. 8. They want to thank also the referees for their constructive comments, which helped them improve and simplify the presentation. This work was partially supported by the Franco-German DFG/ANR project DISCMAT devoted to connections between mathematics and distributed computing, and the French ANR project DESCARTES devoted to distributed software engineering.


  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)CrossRefMATHGoogle Scholar
  2. 2.
    Aguilera, M.: A pleasant stroll through the land of infinitely many creatures. ACM SIGACT News DC Column 35(2), 36–59 (2004)CrossRefGoogle Scholar
  3. 3.
    Attiya, H., Gorbach, A., Moran, S.: Computing in totally anonymous asynchronous shared memory systems. Inf. Comput. 173(2), 162–183 (2002)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Attiya, H., Guerraoui, R., Hendler, D., Kuznetsov, P.: The complexity of obstruction-free implementations. J. ACM 56(4), 24:1–24:33 (2009)Google Scholar
  5. 5.
    Aspnes, J., Herlihy, M.: Fast randomized consensus using shared memory. J. Algorithms 11, 441–461 (1990)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Bonnet, F., Raynal, M.: Anonymous asynchronous systems: the case of failure detectors. Distrib. Comput. 26(3), 141–158 (2013)CrossRefMATHGoogle Scholar
  7. 7.
    Borowsky, E., Gafni, E.: Generalized FLP impossibility result for \(t\)-resilient asynchronous computations. In: Proceedings of 25-th nnual ACM Symposium on Theory of Computing (STOC’93), ACM Press, pp. 91–100 (1993)Google Scholar
  8. 8.
    Borowsky, E., Gafni, E., Lynch, N., Rajsbaum, S.: The BG distributed simulation algorithm. Distrib. Comput. 14(3), 127–146 (2001)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. In: Proceedings of 19th International Conference on Principles of Distributed Systems (OPODIS’15), Leibnitz International Proceedings in Informatics (LIPIcs), vol. 46, Article 18:1–17 (2015)Google Scholar
  10. 10.
    Castañeda, A., Rajsbaum, S., Raynal, M.: Specifying concurrent problems: beyond linearizability and up to tasks. In: Proceedings of 29th Symposium on Distributed Computing (DISC’15), Springer LNCS 9363, pp. 420–435 (2015)Google Scholar
  11. 11.
    Chandra, T., Hadzilacos, V., Toueg, S.: The weakest failure detector for solving consensus. J. ACM 43(4), 685–722 (1996)MathSciNetCrossRefMATHGoogle Scholar
  12. 12.
    Chaudhuri, S.: More choices allow more faults: set consensus problems in totally asynchronous systems. Inf. Comput. 105, 132–158 (1993)MathSciNetCrossRefMATHGoogle Scholar
  13. 13.
    Delporte, C, Fauconnier, H, Gafni, E., Rajsbaum, S.: Black art: obstruction-free \(k\)-set agreement with \(|\)MWMR registers\(| < |\)processes\(|\). In: Proceedings of First International Conference on Networked Systems (NETYS’13), Springer LNCS 7853, pp. 28–41 (2013)Google Scholar
  14. 14.
    Delporte-Gallet, C., Fauconnier, H.: Two consensus algorithms with atomic registers and failure detector \(\Omega \). In: Proceedings of 10th International Conference on Distributed Computing and Networking (ICDCN’09), Springer LNCS 5408, pp. 251–262 (2009)Google Scholar
  15. 15.
    Delporte, C., Fauconnier, H., Kuznetsov, P., Ruppert, E.: On the space complexity of set agreement. In: Proceedings of 34th International Symposium on Principles of Distributed Computing (PODC’15), ACM Press, pp. 271–280 (2015)Google Scholar
  16. 16.
    Ellen Fich, F., Luchangco, V., Moir, M., Shavit, N.: Obstruction-free algorithms can be practically wait-free. In: Proceedings of 19th International Symposium on Distributed Computing (DISC’05), Springer LNCS 3724, pp. 78–92 (2005)Google Scholar
  17. 17.
    Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)MathSciNetCrossRefMATHGoogle Scholar
  18. 18.
    Flocchini, P., Prencipe, G., Santoro, N., Widmayer, P.: Hard tasks for weak robots: the role of common knowledge in pattern formation by autonomous mobile robots. In: Proceedings of 10th International Symposium on Algorithms and Computation (ISAAC’99), Springer LNCS 1741, pp. 93–102 (1999)Google Scholar
  19. 19.
    Friedman, R., Mostefaoui, A., Rajsbaum, S., Raynal, M.: Distributed agreement problems and their connection with error-correcting codes. IEEE Trans. Comput. 56(7), 865–875 (2007)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Gelashvili, R.: Optimal space complexity of consensus for anonymous processes. In: Proceedings of 29th Int’l Symposium on Distributed Computing (DISC’15), Springer LNCS 9363, pp. 452–466 (2015)Google Scholar
  21. 21.
    Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computations. Distrib. Comput. 20, 165–177 (2007)CrossRefMATHGoogle Scholar
  22. 22.
    Herlihy, M.P.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)CrossRefGoogle Scholar
  23. 23.
    Herlihy, M.P., Luchangco, V., Moir, M.: Obstruction-free synchronization: double-ended queues as an example. In: Proceedings of 23th International IEEE Conference on Distributed Computing Systems (ICDCS’03), IEEE Press, pp. 522–529 (2003)Google Scholar
  24. 24.
    Herlihy, M.P., Shavit, N.: The topological structure of asynchronous computability. J. ACM 46(6), 858–923 (1999)MathSciNetCrossRefMATHGoogle Scholar
  25. 25.
    Herlihy, M.P., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington (2008). ISBN 978-0-12-370591-4Google Scholar
  26. 26.
    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
  27. 27.
    Lamport, L.: Concurrent reading and writing. Commun. ACM 20(11), 806–811 (1977)MathSciNetCrossRefMATHGoogle Scholar
  28. 28.
    Lamport, L.: On interprocess communication, part I: basic formalism. Distrib. Comput. 1(2), 77–85 (1986)MathSciNetCrossRefMATHGoogle Scholar
  29. 29.
    Loui, M.C., Abu-Amara, H.H.: Memory requirements for agreement among unreliable asynchronous processes. Parallel and Distributed Computing: Vol. 4 of Advances in Computing Research, JAI Press, 4:163–183 (1987)Google Scholar
  30. 30.
    Merritt, M., Taubenfeld, G.: Computing with infinitely many processes. Inf. Comput. 233, 12–31 (2013)MathSciNetCrossRefMATHGoogle Scholar
  31. 31.
    Peterson, G.L.: Concurrent reading while writing. ACM Trans. Program. Lang. Syst. 5, 46–55 (1983)CrossRefMATHGoogle Scholar
  32. 32.
    Raynal, M.: Concurrent Programming: Algorithms, Principles, and Foundations. Springer, Berlin (2013). ISBN 978-3-642-32026-2CrossRefMATHGoogle Scholar
  33. 33.
    Raynal, M., Stainer, J.: From the \(\Omega \) and store-collect building blocks to efficient asynchronous consensus. In: Proceedings of 18th Interenational European Parallel Computing Conference (EUROPAR’12), Springer LNCS 7484, pp. 427–438 (2012)Google Scholar
  34. 34.
    Saks, M., Shavit, N., Woll, H.: Optimal time randomized consensus—making resilient algorithms fast in practice. In: Proceedings of 2nd ACM/SIAM Symposium on Discrete Algorithms (SODA’90), ACM Press, pp. 351–362 (1991)Google Scholar
  35. 35.
    Saks, M., Zaharoglou, F.: Wait-free k-Set agreement is impossible: the topology of public knowledge. SIAM J. Comput. 29(5), 1449–1483 (2000)MathSciNetCrossRefMATHGoogle Scholar
  36. 36.
    Suzuki, I., Yamashita, M.: Distributed anonymous mobile robots. In: Proceedings of 3rd International Colloquium on Structural Information and Communication Complexity (SIROCCO’96), Carleton University Press, pp. 313–330 (1996)Google Scholar
  37. 37.
    Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming. Pearson Education/Prentice Hall, Upper Saddle River (2006). ISBN 0-131-97259-6Google Scholar
  38. 38.
    Taubenfeld, G.: Contention-sensitive data structure and algorithms. In: Proceedings of 23th International Symposium on Distributed Computing (DISC’09), Springer LNCS 5805, pp. 157–171 (2009)Google Scholar
  39. 39.
    Yamashita, M., Kameda, T.: Computing on anonymous networks: part II-decision and membership problems. IEEE Trans. Parallel Distrib. Syst. 7(1), 90–96 (1996)CrossRefGoogle Scholar
  40. 40.
    Yanagisawa, N.: Wait-free solvability of colorless takss in anonymous shared-memory model. In: Proc. 18th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS’16), Springer LNCS 10083, pp. 415–429 (2016)Google Scholar
  41. 41.
    Zhu, L.: Brief announcement: tight space bounds for memoryless anonymous consensus. In: Proceedings of 29th Symposium on Distributed Computing (DISC’15), Springer LNCS 9363, pp. 665–666 (2015)Google Scholar
  42. 42.
    Zhu, L.: A tight space bound for consensus. In: Proc. 48th ACM Symposium on Theory of Computing (STOC’16), ACM Press, pp. 345–350 (2016)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2017

Authors and Affiliations

  1. 1.IRISAUniversité de RennesRennesFrance
  2. 2.Institut Universitaire de FranceParisFrance
  3. 3.Telecom SudParis and CNRSUniversité Paris-SaclayEvryFrance

Personalised recommendations