Abstract
We study the effect of different progress conditions on the computability of distributed systems. For a system with n processes, we define exponentially many new progress conditions and explore their properties and relative strength. We cover many known and new interesting conditions and propose a new classification for evaluating the strength of shared objects. The classification is based on finding, for each object of type o, the strongest progress condition for which it is possible to solve consensus for any number of processes, using any number of objects of type o and atomic registers. Comparing our classification with the traditional one, which is based on fixing the progress condition (namely, wait-freedom) and finding the largest number of processes for which consensus is solvable, reveals interesting results. Together with our technical results, the new definitions provide a deeper understanding of synchronization and concurrency.
Similar content being viewed by others
Notes
A swap operation takes as arguments a shared register and a local register, and atomically exchange their values.
We notice that k-obstruction-freedom defined for a distinct system size is a distinct progress condition. By saying that it possible to solve consensus for any number of processes, assuming that the required progress condition is k-obstruction-freedom, we mean that it is possible to do so for any fixed number of processes n assuming that the required progress condition is k-obstruction-freedom for n processes.
A test&set bit, say r, is a shared bit that supports two operations: (1) \( test \& set\), which writes 1 to r, and returns the old value (which is either 0 or 1); and (2) reset, which writes 0 into r (and does not return a value).
References
Afek, Y., Ellen, F., Gafni, E.: Deterministic objects: life beyond consensus. In: Proceedings of the 35th ACM Symposium on Principles of Distributed Computing, pp. 97–106 (2016)
Attiya, H., Guerraoui, R., Kouznetsov, P.: Computing with reads and writes in the absence of step contention. In: Proceedings of the 19th International Symposium on Distributed Computing, LNCS, vol. 3724, pp. 122–136 (2005)
Aguilera, M.K., Toueg, S.: Timeliness-based wait-freedom: a gracefully degrading progress condition. In: Proceedings of 27th ACM Symposium on Principles of Distributed Computing, pp. 305–314 (2008)
Bushkov, V., Guerraoui, R.: Safety-liveness exclusion in distributed computing. In: Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing, pp. 227–236 (2015)
Delporte-Gallet, C., Fauconnier, H., Guerraoui, R., Tielmann, A.: The disagreement power of an adversary. Distrib. Comput. 24(3), 137–147 (2011)
Fich, F.E., Ruppert, E.: Hundreds of impossibility results for distributed computing. Distrib. Comput. 16(2–3), 121–163 (2003)
Fich, E.F., Luchangco, V., Moir, M., Shavit, N.: Obstruction-free algorithms can be practically wait-free. In: Proceedings of the 19th International Symposium on Distributed Computing, LNCS, vol. 3724, pp. 78–92 (2005)
Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)
Gafni, E., Guerraoui, R.: Simulating few by many: limited concurrency = set consensus. Unpublished manuscript (2009)
Guerraoui, R., Herlihy, M.P., Pochon, B.: Towards a theory of transactional contention managers. In: Proceedings of the 24th Symposium on Principles of Dist. Computing, pp. 258–264 (2005)
Gafni, E., Kuznetsov, P.: Turning adversaries into friends: simplified, made constructive, and extended. In: 14th International Conference on Principles of Distributed Systems (OPODIS 2010). LNCS, vol. 6490, pp. 380–394. Springer (2010)
Guerraoui, R., Kapalka, M., Kouznetsov, P.: The weakest failure detectors to boost obstruction-freedom. Distrib. Comput. 20(6), 415–433 (2008)
Gafni, E., Merritt, M., Taubenfeld, G.: The concurrency hierarchy, and algorithms for unbounded concurrency. In: Proceedings of the 20th ACM Symposium on Principles of Distributed Computing, pp. 161–169 (2001)
Guerraoui, R., Kouznetsov, P.: Failure detectors as type boosters. Distrib. Comput. 20, 343–358 (2008)
Herlihy, M.P.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)
Herlihy, M.P., Luchangco, V., Moir, M.: Obstruction-free synchronization: double-ended queues as an example. In: Proceedings of the 23rd International Conference on Computational Computing Systems (2003)
Herlihy, M., Rajsbaum, S.: The topology of distributed adversaries. Distrib. Comput. 26(3), 173–192 (2013)
Herlihy, M., Shavit, N.: On the nature of progress. In: 15th International Conference on Principles of Distributed Systems (OPODIS 2011), 2011. LNCS, vol. 7109, pp. 313–328. Springer (2011)
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. TOPLAS 12(3), 463–492 (1990)
Imbs, D., Raynal, M., Taubenfeld, G.: On asymmetric progress conditions. In: Proceedings of the 29th Annual ACM Symposium on Principles of Distributed Computing, pp. 55–64 (2010)
Jayanti, P.: Robust wait-free hierarchies. J. ACM 44(4), 592–614 (1997)
Jayanti, P., Toueg, S.: Some results on the impossibility, universality, and decidability of consensus. In: Proceedings of the 6th International Workshop on Distributed Algorithms: LNCS, vol. 674, pp. 69–84 (1992)
Lo, Wai-Kau, Hadzilacos, Vassos: All of us are smarter than any of us: nondeterministic wait-free hierarchies are not robust. SIAM J. Comput. 30(3), 689–728 (2000)
Luchangco, V., Moir, M., Shavit, N.: On the uncontended complexity of consensus. In: Proceedings of the 17th International Symposium on Distributed Computing, LNCS, vol. 2848, pp. 45–59 (2003)
Loui, M.C., Abu-Amara, H.: Memory requirements for agreement among unreliable asynchronous processes. Adv. Comput. Res. 4, 163–183 (1987)
Merritt, M., Taubenfeld, G.: Resilient consensus for infinitely many processes. In: Proceedings of the 17th International Symposium on Distributed Computing, LNCS, vol. 2848, pp. 1–15 (2003)
Pease, M., Shostak, R., Lamport, L.: Reaching agreement in the presence of faults. J. ACM 27(2), 228–234 (1980)
Plotkin, S.A.: Sticky bits and universality of consensus. In: Proceedings of the 8th ACM Symposium on Principles of Distributed Computing, pp. 159–175 (1989)
Raynal, M., Stainer, J., Taubenfeld, G.: Distributed universality. Algorithmica 76, 502–535 (2016)
Scherer, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: Proceedings of the 24th Symposium on Principles an of Distributed computing, pp. 240–248 (2005)
Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming, p. 423. Pearson/Prentice-Hall, London/Upper Saddle River (2006). ISBN 0-131-97259-6
Taubenfeld, G.: On the nonexistence of resilient consensus protocols. Inf. Process. Lett. 37(5), 285–289 (1991)
Taubenfeld, G.: Contention-sensitive data structures and algorithms. In: Proceedings - 23rd International Symposium on Distributed Computing, Spain, 2009. LNCS, vol. 5805, pp. 157–171 (2009)
Taubenfeld, G.: Contention-sensitive data structures and algorithms. Theor. Comput. Sci. 677, 41–55 (2017)
Taubenfeld, G.: On the computational power of shared objects. In: Proceedings of the 13th International Conference on Principles of Distributed Systems, France, 2009. LNCS, vol. 5923, pp. 270–284 (2009)
Taubenfeld, G.: The computational structure of progress conditions. In: Proceedings of the 24th International Symposium on Distributed Computing, USA, 2010. LNCS, vol. 6343, pp. 221–235 (2010)
Taubenfeld, G.: Coordination without prior agreement. In: Proc. ACM Symposium on Principles of Distributed Computing, PODC ’17, pp. 325–334 (2017)
Taubenfeld, G.: Weak failures: definition, algorithms, and impossibility results. In: Proc. 6th Int’l Conference on Networked Systems (NETYS’18). LNCS, vol. 11028. Springer (2018)
Taubenfeld, G.: Set agreement power is not a precise characterization for oblivious deterministic anonymous objects In: 26th International Colloquium on Structural Information and Communication Complexity (SIROCCO 2019) (2019)
Acknowledgements
I wish to thank the editor Eric Ruppert and three anonymous referees for their constructive comments and suggestions.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Preliminary versions of the results presented in this paper appeared in: (1) the proceedings of the 13th international conf. on principles of distributed systems (OPODIS 2009, best paper award) [35], and (2) the proceedings of the 24th international symposium on distributed computing (DISC 2010) [36].
Rights and permissions
About this article
Cite this article
Taubenfeld, G. The computational structure of progress conditions and shared objects. Distrib. Comput. 33, 103–123 (2020). https://doi.org/10.1007/s00446-019-00356-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00446-019-00356-0