Calvin - Determinism, Distributed ACID transactions (2020)
Summary
Calvin is a deterministic, distributed transaction protocol that targets partitioned and replicated databases by replacing nondeterministic 2PL with deterministic locking. It uses a replicated log to ensure durability and atomicity and requires transactions to be submitted as stored procedures. The post outlines Calvin's three-layer architecture (Sequencing, Scheduling, Storage), nondeterminism handling, dependent transactions, and performance trade-offs, and contrasts it with Spanner's approach.