State machine replication is a fundamental technique
for implementing consistent fault-tolerant services. In the
last years, several protocols have been proposed for improving
the latency of this technique when the replicas are deployed
in geographically-dispersed locations. In this work we evaluate
some representative optimizations proposed in the literature by
implementing them on an open-source state machine replication
library and running the experiments in geographically-diverse
PlanetLab nodes and Amazon EC2 regions. Interestingly, our results
show that some optimizations widely used for improving the
latency of geo-replicated state machines do not bring significant
benefits, while others – not yet considered in this context – are
very effective. Based on this evaluation, we propose WHEAT,
a configurable crash and Byzantine fault-tolerant state machine
replication library that uses the optimizations we observed as
most effective in reducing SMR latency. WHEAT employs novel
voting assignment schemes that, by using few additional spare
replicas, enables the system to make progress without needing
to access a majority of replicas. Our evaluation shows that
a WHEAT system deployed in several Amazon EC2 regions
presents a median latency up to 56% lower than a “normal”
SMR protoco