A library for services transparent replication

State Machine Replication is a well-known approach to develop fault-tolerant application. Although it seems conceptually simple, building replicated state machines is not a trivial task. The developer has to be acquainted with aspects of the inner working of the specific agreement protocol to correctly develop and deploy the replicated service (and auxiliary processes - e.g. Paxos roles), instead of focusing on the specific service. In this work we propose a replication library that facilitates the development and deployment of fault-tolerant services, and provides replication transparency to service builders. This library allows to deploy a base SMR on top of which new services can be registered at runtime. A service builder focuses on service implementation and registers the service with the base SMR to enjoy the benefits of replication. Besides separating the complexity of providing a replicated infrastructure from service implementation, multiple services share the same consensus and replication infrastructure, allowing cost amortization. According to our evaluation, this approach leads to higher overall throughput compared to the separate deployment of different SMRs over the same resources.

[1]  Brett D. Fleisch,et al.  The Chubby lock service for loosely-coupled distributed systems , 2006, OSDI '06.

[2]  Yair Amir,et al.  Paxos for System Builders: an overview , 2008, LADIS '08.

[3]  Robert Griesemer,et al.  Paxos made live: an engineering perspective , 2007, PODC '07.

[4]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[5]  Emin Gün Sirer,et al.  Commodifying Replicated State Machines with OpenReplica , 2012 .

[6]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[7]  Fernando Pedone,et al.  Multi-Ring Paxos , 2012, IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2012).

[8]  Louise E. Moser,et al.  Fault Tolerance Middleware for Cloud Computing , 2010, 2010 IEEE 3rd International Conference on Cloud Computing.

[9]  Fernando Pedone,et al.  Practical Experience Report: The Performance of Paxos in the Cloud , 2014, ArXiv.

[10]  Mike Hibler,et al.  An integrated experimental environment for distributed systems and networks , 2002, OSDI '02.

[11]  Mahadev Konar,et al.  ZooKeeper: Wait-free Coordination for Internet-scale Systems , 2010, USENIX ATC.

[12]  Lu Fang,et al.  Skyway: Connecting Managed Heaps in Distributed Big Data Systems , 2018, ASPLOS.

[13]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[14]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

[15]  Junfeng Yang,et al.  Paxos made transparent , 2015, SOSP.

[16]  Fernando Pedone,et al.  The Performance of Paxos in the Cloud , 2014, 2014 IEEE 33rd International Symposium on Reliable Distributed Systems.

[17]  John K. Ousterhout,et al.  In Search of an Understandable Consensus Algorithm , 2014, USENIX ATC.

[18]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[19]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[20]  David G. Andersen,et al.  There is more consensus in Egalitarian parliaments , 2013, SOSP.

[21]  Alysson Neves Bessani,et al.  State Machine Replication for the Masses with BFT-SMART , 2014, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[22]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[23]  Hairong Kuang,et al.  The Hadoop Distributed File System , 2010, 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).

[24]  Fernando Pedone,et al.  Ring Paxos: A high-throughput atomic broadcast protocol , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[25]  André Schiper,et al.  S-Paxos: Offloading the Leader for High Throughput State Machine Replication , 2012, 2012 IEEE 31st Symposium on Reliable Distributed Systems.

[26]  Leslie Lamport,et al.  Generalized Consensus and Paxos , 2005 .

[27]  Komal Shringare,et al.  Apache Hadoop Goes Realtime at Facebook , 2015 .

[28]  Flavio Paiva Junqueira,et al.  Zab: High-performance broadcast for primary-backup systems , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[29]  GhemawatSanjay,et al.  The Google file system , 2003 .