December 12, 2016
Fernando Pedone
State machine replication (SMR) is a well-established approach to developing highly available services. 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. In this talk, I will present Scalable SMR (S-SMR), our efforts towards extending SMR to support both configurable fault tolerance and configurable performance (i.e., scaling out with the number of replicas). We have used S-SMR to develop a number of distributed services, including a scalable Zookeeper clone and a scalable social network application.