Byzantine fault tolerance (BFT) enhances the reliability of
distributed systems in the presence of arbitrary faults. Initial
proposals for BFT replication protocols targeted strong consistency,
where the replicated system behaved like a single, correct server. In
this talk I will show how exploring weaker consistency models can
improve the availability and performance of BFT-replicated systems.
In the first part of the talk, I will present a novel BFT state machine
replication
protocol called Zeno that trades consistency for higher availability.
In particular, Zeno replaces strong consistency (linearizability)
with a weaker guarantee (eventual consistency): clients
can temporarily miss each other's updates but when the network is
stable the states from the individual partitions are merged by having
the replicas agree on a total order for all requests.
I will also discuss another system that provides
middleware-based database replication. In this case, the weaker
consistency model we used was Snapshot Isolation, and I will show
how it can be leveraged to improve the performance of BFT database
replication.