A Practical Distributed Universal Construction with Unknown Participants

  • Pierre Sutra
  • Étienne Rivière
  • Pascal Felber
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8878)


Modern distributed systems employ atomic read-modify-write primitives to coordinate concurrent operations. Such primitives are typically built on top of a central server, or rely on an agreement protocol. Both approaches provide a universal construction, that is, a general mechanism to construct atomic and responsive objects. These two techniques are however known to be inherently costly. As a consequence, they may result in bottlenecks in applications using them for coordination. In this paper, we investigate another direction to implement a universal construction. Our idea is to delegate the implementation of the universal construction to the clients, and solely implement a distributed shared atomic memory on the servers side. The construction we propose is obstruction-free. It can be implemented in a purely asynchronous manner, and it does not assume the knowledge of the participants. It is built on top of grafarius and racing objects, two novel shared abstractions that we introduce in detail. To assess the benefits of our approach, we present a prototype implementation on top of the Cassandra data store, and compare it empirically to the Zookeeper coordination service.


Time Complexity Shared Memory Critical Section Prototype Implementation Decidable Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998)CrossRefGoogle Scholar
  2. 2.
    Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)CrossRefGoogle Scholar
  3. 3.
    Balakrishnan, M., Malkhi, D., Prabhakaran, V., Wobber, T., Wei, M., Davis, J.D.: Corfu: A shared log design for flash clusters. In: Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation, NSDI 2012, pp. 1–1. USENIX Association, Berkeley (2012)Google Scholar
  4. 4.
    Gafni, E., Lamport, L.: Disk paxos. In: Herlihy, M.P. (ed.) DISC 2000. LNCS, vol. 1914, pp. 330–344. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Balakrishnan, M., Malkhi, D., Wobber, T., Wu, M., Prabhakaran, V., Wei, M., Davis, J.D., Rao, S., Zou, T., Zuck, A.: Tango: Distributed data structures over a shared log. In: 24th ACM Symposium on Operating Systems Principles, SOSP (2013)Google Scholar
  6. 6.
    Gafni, E.: Round-by-round fault detectors (extended abstract): unifying synchrony and asynchrony. In: Proceedings of the Seventeenth Annual ACM Symposium on Principles of Distributed Computing, PODC 1998, pp. 143–152. ACM, New York (1998)CrossRefGoogle Scholar
  7. 7.
    Aspnes, J.: A modular approach to shared-memory consensus, with applications to the probabilistic-write model. In: Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010, pp. 460–467. ACM, New York (2010)CrossRefGoogle Scholar
  8. 8.
    Lakshman, A., Malik, P.: Cassandra: A decentralized structured storage system. SIGOPS Oper. Syst. Rev. 44(2) (April 2010)Google Scholar
  9. 9.
    Junqueira, F.P., Reed, B.C.: The life and times of a ZooKeeper. In: PODC 2009: Proceedings of the 28th ACM Symposium on Principles of Distributed Computing, pp. 4–4. ACM, New York (2009)Google Scholar
  10. 10.
    Sutra, P., Rivière, E., Felber, P.: A practical distributed universal construction with unknown participants. CoRR abs/1309.2772 (2013)Google Scholar
  11. 11.
    Fischer, M.J., Lynch, N.A., Patterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)CrossRefzbMATHGoogle Scholar
  12. 12.
    Guerraoui, R.: Indulgent algorithms (preliminary version). In: PODC 2000, pp. 289–297. ACM, New York (2000)Google Scholar
  13. 13.
    Guerraoui, R., Raynal, M.: The information structure of indulgent consensus. IEEE Trans. Comput. 53(4), 453–466 (2004)CrossRefGoogle Scholar
  14. 14.
    Chockler, G., Malkhi, D.: Active disk paxos with infinitely many processes. In: Proceedings of the Twenty-first Annual Symposium on Principles of Distributed Computing, PODC 2002, pp. 78–87. ACM, New York (2002)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    Aspnes, J., Ellen, F.: Tight bounds for anonymous adopt-commit objects. In: 23rd Annual ACM Symposium on Parallelism in Algorithms and Architectures, pp. 317–324 (June 2011)Google Scholar
  17. 17.
    Luchangco, V., Moir, M., Shavit, N.N.: On the uncontended complexity of consensus. In: Fich, F.E. (ed.) DISC 2003. LNCS, vol. 2848, pp. 45–59. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. 18.
    Fich, F.E., Luchangco, V., Moir, M., Shavit, N.N.: Obstruction-free algorithms can be practically wait-free. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 78–92. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  19. 19.
    Jayanti, P., Tan, K., Toueg, S.: Time and space lower bounds for nonblocking implementations. SIAM J. Comput. 30(2), 438–456 (2000)CrossRefzbMATHMathSciNetGoogle Scholar
  20. 20.
    Jayanti, P., Toueg, S.: Some results on the impossibility, universality, and decidability of consensus. In: Segall, A., Zaks, S. (eds.) WDAG 1992. LNCS, vol. 647, pp. 69–84. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  21. 21.
    Attiya, H., Bar-Noy, A., Dolev, D.: Sharing memory robustly in message-passing systems. J. ACM 42(1), 124–142 (1995)CrossRefzbMATHGoogle Scholar
  22. 22.
    Lynch, N.A., Shvartsman, A.A.: Robust emulation of shared memory using dynamic quorum-acknowledged broadcasts. In: Proceedings of the 27th International Symposium on Fault-Tolerant Computing (FTCS 1997). IEEE Computer Society, Washington, DC (1997)Google Scholar
  23. 23.
    Herlihy, M., Wing, J.: Linearizability: A correcteness condition for concurrent objects. ACM Trans. on Prog. Lang. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  24. 24.
    Herlihy, M., Shavit, N.: On the nature of progress. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 313–328. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  25. 25.
    Lamport, L.: A fast mutual exclusion algorithm. ACM Trans. Comput. Syst. 5(1), 1–11 (1987)CrossRefGoogle Scholar
  26. 26.
    Moir, M., Anderson, J.: Fast, long-lived renaming. In: Tel, G., Vitányi, P.M.B. (eds.) WDAG 1994. LNCS, vol. 857, pp. 141–155. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  27. 27.
    Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computing. Distributed Computing 20(3), 165–177 (2007)CrossRefzbMATHGoogle Scholar
  28. 28.
    Attiya, H., Fouren, A., Gafni, E.: An adaptive collect algorithm with applications. Distributed Computing 15(2), 87–96 (2002)CrossRefGoogle Scholar
  29. 29.
  30. 30.
    Allen, A.O.: Probability, Statistics, and Queueing Theory with Computer Science Applications. Academic Press Professional, Inc., San Diego (1990)zbMATHGoogle Scholar
  31. 31.
    Blasgen, M., Gray, J., Mitoma, M., Price, T.: The convoy phenomenon. SIGOPS Oper. Syst. Rev. 13(2), 20–25 (1979)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Pierre Sutra
    • 1
  • Étienne Rivière
    • 1
  • Pascal Felber
    • 1
  1. 1.University of NeuchâtelSwitzerland

Personalised recommendations