OPODIS 2014: Principles of Distributed Systems pp 485-500 | Cite as
A Practical Distributed Universal Construction with Unknown Participants
Abstract
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.
Keywords
Time Complexity Shared Memory Critical Section Prototype Implementation Decidable ObjectPreview
Unable to display preview. Download preview PDF.
References
- 1.Lamport, L.: The part-time parliament. ACM Trans. Comput. Syst. 16(2), 133–169 (1998)CrossRefGoogle Scholar
- 2.Herlihy, M.: Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1), 124–149 (1991)CrossRefGoogle Scholar
- 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.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.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.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.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.Lakshman, A., Malik, P.: Cassandra: A decentralized structured storage system. SIGOPS Oper. Syst. Rev. 44(2) (April 2010)Google Scholar
- 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.Sutra, P., Rivière, E., Felber, P.: A practical distributed universal construction with unknown participants. CoRR abs/1309.2772 (2013)Google Scholar
- 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)CrossRefMATHGoogle Scholar
- 12.Guerraoui, R.: Indulgent algorithms (preliminary version). In: PODC 2000, pp. 289–297. ACM, New York (2000)Google Scholar
- 13.Guerraoui, R., Raynal, M.: The information structure of indulgent consensus. IEEE Trans. Comput. 53(4), 453–466 (2004)CrossRefGoogle Scholar
- 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.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.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.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.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.Jayanti, P., Tan, K., Toueg, S.: Time and space lower bounds for nonblocking implementations. SIAM J. Comput. 30(2), 438–456 (2000)CrossRefMATHMathSciNetGoogle Scholar
- 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.Attiya, H., Bar-Noy, A., Dolev, D.: Sharing memory robustly in message-passing systems. J. ACM 42(1), 124–142 (1995)CrossRefMATHGoogle Scholar
- 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.Herlihy, M., Wing, J.: Linearizability: A correcteness condition for concurrent objects. ACM Trans. on Prog. Lang. 12(3), 463–492 (1990)CrossRefGoogle Scholar
- 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.Lamport, L.: A fast mutual exclusion algorithm. ACM Trans. Comput. Syst. 5(1), 1–11 (1987)CrossRefGoogle Scholar
- 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.Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computing. Distributed Computing 20(3), 165–177 (2007)CrossRefMATHGoogle Scholar
- 28.Attiya, H., Fouren, A., Gafni, E.: An adaptive collect algorithm with applications. Distributed Computing 15(2), 87–96 (2002)CrossRefGoogle Scholar
- 29.Sutra, P.: (2013), http://github.com/otrack/pssolib
- 30.Allen, A.O.: Probability, Statistics, and Queueing Theory with Computer Science Applications. Academic Press Professional, Inc., San Diego (1990)MATHGoogle Scholar
- 31.Blasgen, M., Gray, J., Mitoma, M., Price, T.: The convoy phenomenon. SIGOPS Oper. Syst. Rev. 13(2), 20–25 (1979)CrossRefGoogle Scholar