Scaling Dependable Systems

Many current online services have stringent availability and performance requirements. High availability entails tolerating component failures and is typically accomplished with replication. For many online services, high performance essentially means the ability to serve an arbitrarily large workload, something that can be achieved if the service can scale throughput when provided with additional resources (e.g., processors). Combining high availability and high performance without sacrificing consistency is a challenging endeavor of utmost importance.

State machine replication (SMR) is a well-established approach to handling replication. In essence, the idea is that replicas deterministically execute the same sequence of client commands in the same order and in doing so transition through the same sequence of states and produce the same results. While SMR provides configurable fault tolerance, it does not scale performance: since every replica added to the system needs to execute all requests, throughput does not improve with the number of replicas. To address this performance bottleneck, several techniques have extended state machine replication to scale (a) with the number of replicas (scale out) and (b) with the number of processors in a replica (scale up).

In this tutorial, we will cover the basics and the most prominent techniques to scale out and scale up state machine replication. The tutorial targets an audience with a general understanding of distributed systems.

Length of tutorial: half day
November 20th, 2019
Pedone Fernando Pedone
Universita della Svizzera italiana (USI)
Faculty of Informatics
Via Giuseppe Buffi 6
CH-6904 - Lugano
Phone: +41 58 666 4695
Email: fernando.pedone@usi.ch

Dotti Fernando Dotti
PUCRS - Pontifícia Universidade Católica do Rio Grande do Sul
School of Technology
Graduate Program in Computer Science
Av. Ipiranga 6681
90619-900 Porto Alegre - RS - Brazil
Phone: +55 51 3320 3558
E-mail: fernando.dotti@pucrs.br

Coelho Paulo Coelho
UFU - Universidade Federal de Uberlândia
Faculty of Computer Science
Av. João Naves de Ávila 2121
38400-902 - Uberlândia - MG - Brazil
E-mail: paulocoelho@ufu.br