# Distributed Universality

- 149 Downloads
- 2 Citations

## Abstract

A notion of a *universal construction* suited to distributed computing has been introduced by Herlihy in his celebrated paper “*Wait-free synchronization*” (ACM Trans Program Lang Syst 13(1):124–149, 1991). A universal construction is an algorithm that can be used to wait-free implement any object defined by a sequential specification. Herlihy’s paper shows that the basic system model, which supports only atomic read/write registers, has to be enriched with consensus objects to allow the design of universal constructions. The generalized notion of a *k* *-universal* construction has been recently introduced by Gafni and Guerraoui (Proceedings of 22nd international conference on concurrency theory (CONCUR’11), Springer LNCS 6901, pp 17–27, 2011). A *k*-universal construction is an algorithm that can be used to simultaneously implement *k* objects (instead of just one object), with the guarantee that at least one of the *k* constructed objects progresses forever. While Herlihy’s universal construction relies on atomic registers and consensus objects, a *k*-universal construction relies on atomic registers and *k*-simultaneous consensus objects (which are wait-free equivalent to *k*-set agreement objects in the read/write system model). This paper significantly extends the universality results introduced by Herlihy and Gafni–Guerraoui. In particular, we present a *k*-universal construction which satisfies the following five desired properties, which are not satisfied by the previous *k*-universal construction: (1) among the *k* objects that are constructed, *at least* \(\ell \) objects (and not just one) are guaranteed to progress forever; (2) the progress condition for processes is *wait-freedom*, which means that each correct process executes an infinite number of operations on each object that progresses forever; (3) if any of the *k* constructed objects stops progressing, all its copies (one at each process) stop in the same state; (4) the proposed construction is *contention-aware*, in the sense that it uses only read/write registers in the absence of contention; and (5) it is *generous* with respect to the *obstruction-freedom* progress condition, which means that each process is able to complete any one of its pending operations on the *k* objects if all the other processes hold still long enough. The proposed construction, which is based on new design principles, is called a \((k,\ell )\)-universal construction. It uses a natural extension of *k*-simultaneous consensus objects, called \((k,\ell )\)-simultaneous consensus objects (\((k,\ell )\)-SC). Together with atomic registers, \((k,\ell )\)-SC objects are shown to be necessary and sufficient for building a \((k,\ell )\)-universal construction, and, in that sense, \((k,\ell )\)-SC objects are \((k,\ell )\)-\( {universal}\).

## Keywords

Asynchronous read/write system Universal construction Consensus Distributed computability*k*-Set agreement

*k*-Simultaneous consensus Wait-freedom Obstruction-freedom Contention-awareness Crash failures State machine replication

## Notes

### Acknowledgments

This work has been partially supported by the French ANR project DISPLEXITY devoted to computability and complexity in distributed computing, and the Franco-German ANR project DISCMAT devoted to connections between mathematics and distributed computing. We want to thank Reviewer 1 and Reviewer 3 for their constructive comments, which helped us improve the content and the presentation of the paper.

## References

- 1.Afek, Y., Gafni, E., Rajsbaum, S., Raynal, M., Travers, C.: The \(k\)-simultaneous consensus problem. Distrib. Comput.
**22**(3), 185–195 (2010)CrossRefMATHGoogle Scholar - 2.Anderson, J.H., Moir, M.: Universal constructions for large objects. IEEE Trans. Parallel Distrib. Syst.
**10**(12), 1317–1332 (1999)CrossRefGoogle Scholar - 3.Attiya, H., Guerraoui, R., Hendler, D., Kutnetsov P.: The complexity of obstruction-free implementations. J. ACM
**56**(4), Article 24 (2009)Google Scholar - 4.Attiya, H., Welch, J.L.: Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edn. Wiley-Interscience, Hoboken (2004). ISBN 0-471-45324-2CrossRefMATHGoogle Scholar
- 5.Borowsky, E., Gafni, E.: Generalized FLP impossibility results for \(t\)-resilient asynchronous computations. In: Proceedings of 25th ACM Symposium on Theory of Computing (STOC’93), pp. 91–100. ACM Press (1993)Google Scholar
- 6.Bouzid, Z., Travers, C.: Simultaneous consensus is harder than set agreement in message-passing. In: Proceedings of 33rd International IEEE Conference on Distributed Computing Systems (ICDCS’13), pp. 611–620. IEEE Press (2013)Google Scholar
- 7.Capdevielle, C., Johnen, C., Milani, A.: Solo-fast universal cosntructions for deterministic abortable objects. In: Proceedings of 28th International Symposium on Distributed Computing (DISC’14), Springer LNCS 8784, pp. 288–302 (2014)Google Scholar
- 8.Chaudhuri, S.: More choices allow more faults: set consensus problems in totally asynchronous systems. Inf. Comput.
**105**(1), 132–158 (1993)MathSciNetCrossRefMATHGoogle Scholar - 9.Chuong, Ph., Ellen, F., Ramachandran V.: A Universal construction for wait-free transaction friendly data structures. In: Proceedings of 22th International ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’10), pp. 335–344. ACM Press (2010)Google Scholar
- 10.Crain, T., Imbs, D., Raynal, M.: Towards a universal construction for transaction-based multiprocess programs. Theor. Comput. Sci.
**496**, 154–169 (2013)MathSciNetCrossRefMATHGoogle Scholar - 11.Ellen, F., Fatourou, P., Kosmas, E., Milani, A., Travers, C.: Universal construction that ensure disjoint-access parallelism and wait-freedom. In: Proceedings of 31th ACM Symposium on Principles of Distributed Computing (PODC), pp. 115–124. ACM Press (2012)Google Scholar
- 12.Fatourou, P., Kallimanis, N.D.: A highly-efficient wait-free universal construction. In: Proceedings of 23th ACM Symposium on Parallel Algorithms and Architectures (SPAA), pp. 325–334. ACM Press (2012)Google Scholar
- 13.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 - 14.Gafni, E.: Round-by-round fault detectors: unifying synchrony and asynchrony. In: Proceedings of 17th ACM Symposium on Principles of Distributed Computing (PODC), pp. 143–152. ACM Press (1998)Google Scholar
- 15.Gafni, E., Guerraoui, R.: Generalizing universality. In: Proceedings of 22nd International Conference on Concurrency Theory (CONCUR’11), Springer LNCS 6901, pp. 17–27 (2011)Google Scholar
- 16.Guerraoui, R., Kapalka, M., Kouznetsov, P.: The weakest failure detectors to boost obstruction-freedom. Distrib. Comput.
**20**(6), 415–433 (2008)CrossRefMATHGoogle Scholar - 17.Guerraoui, R., Lynch, N.A.: A general characterization of indulgence. ACM Trans. Auton. Adapt. Syst.
**3**(4), Article 20 (2008)Google Scholar - 18.Herlihy, M.P.: Wait-free synchronization. ACM Trans. Program. Lang. Syst.
**13**(1), 124–149 (1991)CrossRefGoogle Scholar - 19.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), pp. 522–529. IEEE Press (2003)Google Scholar
- 20.Herlihy, M., Luchangco, V., Moir, M., Scherer, W.M. III: Software transactional memory for dynamic-sized data structures. In: Proceedings of 22nd International ACM Symposium on Principles of Distributed Computing (PODC’03), pp. 92–101. ACM Press (2003)Google Scholar
- 21.Herlihy, M.P., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. In: Proceedings of 20th ACM International Symposium on Computer Architecture (ISCA’93), pp. 289–300. ACM Press (1993)Google Scholar
- 22.Herlihy, M.P., Shavit, N.: The topological structure of asynchronous computability. J. ACM
**46**(6), 858–923 (1999)MathSciNetCrossRefMATHGoogle Scholar - 23.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 - 24.Lamport, L.: On inter-process communications. Part I: Basic formalism. Distrib. Comput.
**1**(2), 77–85 (1986)CrossRefMATHGoogle Scholar - 25.Loui, M., Abu-Amara, H.: Memory requirements for agreement among unreliable asynchronous processes. Adv. Comput. Res.
**4**, 163–183 (1987)MathSciNetGoogle Scholar - 26.Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann, Kaufmann (1996)MATHGoogle Scholar
- 27.Luchangco, V., Moir, M., Shavit, N.: On the Uncontended complexity of consensus. In: Proceedings of 17th International Symposium on Distributed Computing (DISC’03), Springer LNCS 2848, pp. 45–59 (2003)Google Scholar
- 28.Merritt, M., Taubenfeld, G.: Resilient consensus for infinitely many processes. In: Proceedings of 17th International Symposium on Distributed Computing (DISC’03), Springer LNCS 2848, pp. 1–15 (2003)Google Scholar
- 29.Raynal, M.: Concurrent Programming: Algorithms, Principles, and Foundations. Springer, Berlin (2013). ISBN 978-3-642-32026-2CrossRefMATHGoogle Scholar
- 30.Raynal, M., Stainer, J.: Simultaneous consensus vs set agreement: a message-passing-sensitive hierarchy of agreement problems. In: Proceedings of 20th International Colloquium on Structural Information and Communication Complexity (SIROCCO 2013), Springer LNCS 8179, pp. 298–309 (2013)Google Scholar
- 31.Raynal, M., Stainer, J., Taubenfeld, G.: Distributed universality. In: Proceedings of 18th International Conference on Principles of Distributed Systems (OPODIS 14), Springer LNCS 8878, pp. 469–484 (2014)Google Scholar
- 32.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 - 33.Shavit, N., Touitou, D.: Software transactional memory. Distrib. Comput.
**10**(2), 99–116 (1997)CrossRefGoogle Scholar - 34.Taubenfeld, G.: Contention-sensitive data structure and algorithms. In: Proceedings of 23rd International Symposium on Distributed Computing (DISC’09), Springer LNCS 5805, pp. 157–171 (2009)Google Scholar