paper

Calvin: Fast Distributed Transactions for Partitioned Database Systems

  • Authors:

📜 Abstract

Many "NoSQL" distributed storage systems, such as Bigtable, PNUTS, and Dynamo, provide high availability, low latency, and scalability by giving up ACID transactions and serializability guarantees. However, it is well known that the lack of these properties simplifies application logic, severely limits the types of applications that can be implemented on top of these storage systems, and has a significant negative impact on developer productivity. In this paper, we propose Calvin, a practical transaction scheduling and data replication layer that provides ACID transactions scalably and supports both primary-key serializability and full ACID serializability. Calvin achieves asynchrony and high availability using an innovative protocol for consistent replication and a transaction scheduler that can provide low-latency ACID transactions without requiring distributed commit protocols.

✨ Summary

Calvin is a seminal paper in the field of distributed transaction processing for partitioned database systems. It introduces a transaction scheduling and data replication layer that enables scalable ACID transactions while maintaining high availability and low latency. Calvin’s protocol for consistent replication and innovative transaction scheduler allow it to achieve asynchrony without needing distributed commit protocols, which significantly enhances developer productivity by providing strong consistency guarantees.

The Calvin system paper is frequently cited in subsequent research and has influenced many projects in the database community. It addresses a crucial gap in NoSQL databases, which often trade off ACID compliance for performance and scalability. Calvin has been referenced in various works discussing improvements and implementations of distributed transaction processing mechanisms.

One such example is the Spanner system by Google, which incorporates Calvin’s ideas by providing strong consistency guarantees in a globally distributed database environment (Corbett et al., “Spanner: Google’s Globally Distributed Database”). Another example is the FaRM system, which implements optimistic concurrency control and distributed transactions across a database environment (Dragojevic et al., “FaRM: Fast Remote Memory”). These projects utilize concepts introduced in Calvin to enhance the capabilities and guarantees of their systems.

Calvin has also influenced the development of protocols that focus on the scalability of ACID transactions (“Hekaton: SQL Server’s In-Memory OLTP Engine”). Additionally, the impact of Calvin extends to research on ensuring data integrity and high availability in distributed databases (“Rococo: Fast and Reliable Distributed Transactions”).

Overall, Calvin has made substantial contributions to the field of distributed database systems and continues to be relevant in ongoing research and implementations.