Abstract
In this chapter, we discuss a widely used fault-tolerant data replication model called virtual synchrony. The model responds to two kinds of needs. First, there is the practical question of how best to embed replication into distributed systems. Virtual synchrony defines dynamic process groups that have self-managed membership. Applications can join or leave groups at will: a process group is almost like a replicated variable that lives in the network. The second need relates to performance. Although state machine replication is relatively easy to understand, protocols that implement state machine replication in the standard manner are too slow to be useful in demanding settings, and are hard to deploy in very large data centers of the sort seen in today’s cloud-computing environments. Virtual synchrony implementations, in contrast, are able to deliver updates at the same data rates (and with the same low latencies) as IP multicast: the fast (but unreliable) Internet multicast protocol, often supported directly by hardware. The trick that makes it possible to achieve these very high levels of performance is to hide overheads by piggybacking extra information on regular messages that carry updates. The virtual synchrony replication model has been very widely adopted, and was used in everything from air traffic control and stock market systems to data center management platforms marketed by companies like IBM and Microsoft. Moreover, in recent years, state machine protocols such as those used in support of Paxos have begun to include elements of the virtual synchrony model, such as self-managed and very dynamic membership. Our exploration of the model takes the form of a history. We start by exploring the background, and then follow evolution of the model over time.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aguilera, M., Merchant, A., Shah, M., Veitch, A., Karamanolis, C.: Sinfonia: a new paradigm for building scalable distributed systems. In: 21st ACM SOSP, Nov. 2007, pp. 159–174 (2007)
Amir, Y., Nita-Rotaru, C., Stanton, J., Tsudik, G.: Secure Spread: An Integrated Architecture for Secure Group Communication. IEEE TDSC 2(3) (2005)
Babaoglu, Ö., Bartoli, A., Dini, G.: Enriched view synchrony: A programming paradigm for partitionable asynchronous distributed systems. IEEE Transactions on Computers 46(6), 642–658 (1997)
Bernstein, P., Goodman, N.: Concurrency Control in Distributed Database Systems. ACM Computing Surveys 13(2) (1981)
Bernstein, P., Goodman, N.: An algorithm for concurrency control and recovery in replicated distributed databases. ACM Transactions on Database Systems 9(4), 596–615 (1984)
Bhatti, N., Hiltunen, M., Schlichting, R., Chiu, W.: Coyote: A System for Constructing Fine-Grain Configurable Communication Services. ACM Transactions on Computer Systems 16(4), 321–366 (1998)
Biagioni, E., Harper, R., Lee, P.: A Network Protocol Stack in Standard ML. Journal of Higher-Order and Symbolic Computation 14(4) (2001)
Birman, K.: Replication and Fault-Tolerance in the ISIS System. In: 10th ACM Symposium on Operating Systems Principles, Dec. 1985, pp. 79–86 (1985)
Birman, K.: Responses to Cheriton and Skeen’s SOSP paper on Understanding the Limitations of Causal and Total Event Ordering. SIGOPS Operating Systems Review 28(1) (1994)
Birman, K.: A review of experiences with reliable multicast. Software Practice and Experience 29(9) (1999)
Birman, K.: Reliable Distributed Systems. Springer, New York (2004)
Birman, K., Chandersekaran, C., Dolev, D., Van Renesse, R.: How the Hidden Hand Shapes the Market for Software Reliability. In: Proceedings IEEE Workshop on Applied Software Reliability, Philadelphia, PA (June 2006)
Birman, K., Joseph, T.: Reliable communication in the presence of failures. Tech. Rep. TR85-694 (August 1985)
Birman, K., Joseph, T.: Exploiting Virtual Synchrony in Distributed Systems. In: 11th ACM Symposium on Operating Systems Principles (Dec. 1987)
Birman, K., Joseph, T.: Reliable communication in the presence of failures. ACM Transactions on Computer Systems 5(1) (1987)
Birman, K., Joseph, T., Raeuchle, T., El Abbadi, A.: Implementing Fault-Tolerant Distributed Objects. IEEE Transactions on Software Engineering 11(6) (1985)
Birman, K., Schiper, A., Stephenson, P.: Lightweight causal and atomic group multicast. ACM Transactions on Computer Systems 9(3), 272–314 (1991)
Briot, J., Guerraoui, R., Lohr, K.: Concurrency and Distribution in Object-Oriented Programming. ACM Comput. Surv. 30(3), 291–329 (1998)
Burrows, M.: The Chubby Lock Service for Loosely-Coupled Distributed Systems. In: OSDI, pp. 335–350 (2006)
Chandra, T., Hadzilacos, V., Toueg, S., Charron-Bost, B.: On the impossibility of group membership. In: Proc. 15th PODC, May 23-26, 1996, pp. 322–330 (1996)
Chandra, T.D., Griesemer, R., Redstone, J.: Paxos Made Live — An Engineering Perspective (based on Chandra’s 2006 invited talk). In: Proc. 26th PODC, Aug. 2007, pp. 398–407 (2007)
Chang, J., Maxemchuk, N.: Reliable broadcast protocols. ACM Trans. on. Computer Systems 2(3), 251–273 (1984)
Cheriton, D., Skeen, D.: Understanding the Limitations of Causally and Totally Ordered Communication. In: SOSP, pp. 44–57 (1993)
Cheriton, D., Zwaenepoel, W.: Distributed process groups in the V Kernel. ACM Transactions on Computer Systems (TOCS) 3(2), 77–107 (1985)
Chockler, G., Keidar, I., Vitenberg, R.: Group Communication Specifications: A Comprehensive Study. ACM Computing Surveys 33(4) (2001)
Chrysanthis, P.K., Ramamritham, K.: ACTA: the SAGA Continues. In: Elmagarmid, A. (ed.) Database transaction models for advanced applications, Morgan Kaufmann, San Francisco (1992)
Cristian, F., Aghili, H., Strong, R., Volev, D.: Atomic Broadcast: From Simple Message Diffusion to Byzantine Agreement. In: Proc. 15th Int. Symp. on Fault-Tolerant Computing (FTCS-15), Ann Arbor, MI, USA, June 1985, pp. 200–206. IEEE Computer Society Press, Los Alamitos (1985)
Damm, C., Eugster, P., Guerraoui, R.: Linguistic Support for Distributed Programming Abstractions. In: CDCS, pp. 244–251 (2004)
Dekel, E., et al.: Distribution and Consistency Services (DCS), http://www.haifa.ibm.com/projects/systems/dcs/index.html
Dekel, E., Frenkel, O., Goft, G., Moatti, Y.: Easy: engineering high availability QoS in wservices. In: Proc. 22nd Reliable Distributed Systems, pp. 157–166 (2003)
Dolev, D., Malkhi, D.: The Transis Approach to High Availability Cluster Communication. Comm. ACM 39(4), 87–92 (1996)
Eugster, P.: Type-based Publish/Subscribe: Concepts and Experiences. ACM Transactions on Programming Languages and Systems (TOPLAS) 29(1) (2007)
Eugster, P., Damm, C., Guerraoui, R.: Towards Safe Distributed Application Development. In: ICSE, pp. 347–356 (2004)
Eugster, P., Guerraoui, R., Damm, C.: On Objects and Events. In: OOPSLA, pp. 254–269 (2001)
Fischer, M., Lynch, N.A., Paterson, M.: Impossibility of distributed consensus with one faulty process (initially published in ACM PODS, August 1983). Journal of the ACM (JACM) 32(2) (1985)
Guerraoui, R., Schiper, A.: Consensus Service: A Modular Approach for Building Agreement Protocols in Distributed Systems. In: Proc. 26th FTCS, Japan, June 1996, pp. 168–177 (1996)
Hayden, M.: The Ensemble System. Ph.D. thesis, Cornell University, available as TR 98-1662 (May 1998)
Herlihy, M., Wing, J.: Linearizability: A Correctness Condition for Concurrent Objects. ACM TOPLAS 12(3), 463–492 (1990)
Hutchinson, N.C., Peterson, L.L.: The x-Kernel: An architecture for implementing network protocols. IEEE Trans. Software Eng. 17(1) (1991)
Joseph, T.A., Birman, K.: Low Cost Management of Replicated Data in Fault-Tolerant Distributed Systems. ACM Trans. Comput. Syst. 4(1), 54–70 (1986)
Kaashoek, M.F., Tanenbaum, A.S., Verstoep, K.: Group Communication in Amoeba and its Applications. Distributed Systems Engineering 1(1), 48–58 (1993)
Keidar, I., Dolev, D.: Increasing the Resilience of Atomic Commit at no Additional Cost. In: ACM PODS, May 1995, pp. 245–254 (1995)
Keidar, I., Khazan, R., Lynch, N., Shvartsman, A.: An Inheritance-Based Technique for Building Simulation Proofs Incrementally. ACM TOSEM 11(1) (2002)
Krumvieda, C.: Distributed ML: Abstractions for Efficient and Fault-Tolerant Programming. Ph.D. thesis, Cornell University, available as TR 93-1376 (1993)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Comm. ACM 21(7) (1978)
Lamport, L.: Using Time Instead of Timeout for Fault-Tolerant Distributed Systems. ACM TOPLAS 6(2) (1984)
Lamport, L.: The temporal logic of actions. ACM TOPLAS 16(3), 872–923 (1994)
Lamport, L.: The Part-Time Parliament (technical report version: 1990). ACM Transactions on Computer Systems 16(2), 133–169 (1998)
Liskov, B., Scheifler, R.: Guardians and Actions: Linguistic Support for Robust, Distributed Programs. ACM TOPLAS 5(3) (1983)
Liu, X., Kreitz, C., van Renesse, R., Hickey, J., Hayden, M., Birman, K., Constable, R.: Building reliable, high-performance communication systems from components. In: 17th ACM SOSP (Dec. 1999)
Lynch, N., Tuttle, M.: An Introduction to Input/Output automata (also Technical Memo MIT/LCS/TM-373, Laboratory for Computer Science, Massachusetts Institute of Technology). CWI Quarterly 2(3), 219–246 (1989)
Malloth, C.P., Felber, P., Schiper, A., Wilhelm, U.: Phoenix: A Toolkit for Building Fault-Tolerant Distributed Applications in Large Scale. In: Proc. of IEEE Workshop on Parallel and Distributed Platforms in Industrial Products, San Antonio, TX (Oct. 1995)
Malloth, C.P., Schiper, A.: View Synchronous Communication in the Internet. Tech. Rep. 94/84, EPFL (Oct. 1994)
Manferdelli, J.: Microsoft Corporation. Unpublished correspondence (Oct. 2007)
McKendry, M.S.: Clouds: A fault-tolerant distributed operating system. IEEE Tech. Com. Distributed Processing Newsletter 2(6) (1984)
Mishra, S., Peterson, L.L., Schlichting, R.D.: Experience with modularity in Consul. Software—Practice and Experience 23(10) (1993)
Moser, L.E., Amir, Y., Melliar-Smith, P.M., Agarwal, D.A.: Extended virtual synchrony. In: Proceedings of the 14th IEEE International Conference on Distributed Computing Systems, Poznan, Poland, June 1994, pp. 56–65 (1994)
Moser, L.E., Melliar-Smith, P.M., Agarwal, D., Budhia, R.K., Lingley-Papadopoulos, C.A., Archambault, T.: The Totem system. In: Proceedings of the 25th Annual International Symposium on Fault-Tolerant Computing, Pasadena, CA (June 1995)
Moser, L.E., Melliar-Smith, P.M., Narasimhan, P.: The Eternal System. In: Workshop on Dependable Distributed Object Systems, OOPSLA’97, Atlanta, Georgia (October 1997)
Ostrowski, K., Birman, K., Dolev, D.: Live Distributed Objects: Enabling the Active Web. IEEE Internet Computing (Nov./Dec. 2007)
Ostrowski, K., Birman, K., Dolev, D.: QuickSilver Scalable Multicast. In: Network Computing and Applications (NCA), Cambridge, MA (2008)
Ostrowski, K., Birman, K., Dolev, D., Ahnn, J.H.: Programming with live distributed objects. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 463–489. Springer, Heidelberg (2008)
Randell, B., Xu, J.: The Evolution of the Recovery Block Concept. In: Lyu, M.R. (ed.) Software Fault Tolerance, pp. 1–21. John Wiley & Sons, Chichester (1995)
Reed, B., Junqueira, F., Konar, M.: Zookeeper: Because Building Distributed Systems is a Zoo. Submitted for publication (Oct. 2007)
Ricciardi, A., Birman, K.: Using Process Groups to Implement Failure Detection in Asynchronous Environments. In: PODC, pp. 341–353 (1991)
Schiper, A., Sandoz, A.: Uniform reliable multicast in a Virtually Synchronous Environment. In: Proc. 13th ICDCS, Pittsburgh (May 1993)
Schiper, A., Sandoz, A.: Primary Partition “Virtually-Synchronous Communication” Harder than Consensus. In: Tel, G., Vitányi, P.M.B. (eds.) WDAG 1994. LNCS, vol. 857, pp. 39–52. Springer, Heidelberg (1994)
Schneider, F.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22(4), 299–319 (1990)
Schneider, F., Schlichting, R.: Fail-stop processors: An approach to designing fault-tolerant computing systems. TOCS 1(3), 222–238 (1983)
Skeen, D.: Nonblocking Commit Protocols. In: Proc. ACM SIGMOD, pp. 133–142 (1981)
Skeen, D.: Determining the Last Process to Fail. In: ACM PODS, pp. 16–24 (1983)
Van Renesse, R., Birman, K.: Reliable Distributed Computing with the Isis Toolkit. IEEE Computer Society Press, Los Alamitos (1994)
Van Renesse, R., Birman, K., Maffeis, S.: Horus: A Flexible Group Communication System. Communications of the ACM 39(4), special issue on Group Communication Systems (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Birman, K. (2010). A History of the Virtual Synchrony Replication Model. In: Charron-Bost, B., Pedone, F., Schiper, A. (eds) Replication. Lecture Notes in Computer Science, vol 5959. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11294-2_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-11294-2_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11293-5
Online ISBN: 978-3-642-11294-2
eBook Packages: Computer ScienceComputer Science (R0)