Company
Date Published
Author
Daniel J. Abadi
Word count
3031
Language
English
Hacker News points
14

Summary

Spanner vs. Calvin: Distributed Consistency at Scale` Spanner and Calvin are two systems designed for geographically replicated, consistent, ACID compliant, transactional database systems. Both papers published in 2012 described the design of these systems, which criticize the proliferation of NoSQL database systems that compromise replication consistency and transactional support. Spanner uses TrueTime to order transactions, while Calvin uses preprocessing. This fundamental choice leads to differences in how the systems perform replication, commit protocols, and scalability. Calvin leverages deterministic execution to avoid two-phase commit, reducing lock hold time and improving throughput scalability for transactional workloads with concurrent transactions accessing the same data. However, Spanner has a clear performance advantage over Calvin for latency of read-only transactions submitted by clients that are physically close to the location of the leader servers for the partitions accessed by that transaction. Considering the limitations on transaction types and real-world workloads, Calvin seems to be the better fit for modern applications.