English
Modern applications require replication for availability. State machine replication (SMR) is a standard way to replicate applications over a number of servers. In SMR, increasing the number of servers improves fault tolerance, but it does not increase performance, since each replica executes all the requests. Partitioned state machine replication seeks to increase performance by partitioning the application state. In this paper, we discuss challenges involved in developing complex applications over partitioned state machine replication. In particular, we develop a distributed B+tree whose nodes are distributed over a set of partitions, and each partition is replicated. B+tree is an important data structure employed in a number of well-known applications and database systems. Moreover, the techniques used in the paper can be easily extended to other data structures and applications.