  Quorum systems are a powerful mechanism for ensuring the consistency of
replicated data. Production systems usually opt for majority quorums due to
their simplicity and fault tolerance, but majority quorum systems provide poor
throughput and scalability. Alternatively, researchers have invented a number
of theoretically "optimal" quorum systems, but the underlying theory ignores
many practical complexities such as machine heterogeneity and workload skew. In
this paper, we conduct a pragmatic re-examination of quorum systems. We enrich
the current theory on quorum systems with a number of practical refinements to
find quorum systems that provide higher throughput, lower latency, and lower
network load. We also develop a library Quoracle that precisely quantifies the
available trade-offs between quorum systems to empower engineers to find
optimal quorum systems, given a set of objectives for specific deployments and
workloads. Our tool is available online at:
https://github.com/mwhittaker/quoracle.
