└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Awesome distributed transactions 2 | A curated selection of distributed transactions protocols 3 | 4 | ## Highly Available Transactions 5 | 6 | ### Transactional Causal Consistency 7 | 8 | [Cure: Strong semantics meets high availability and low latency](https://hal.inria.fr/hal-01270776/document) 9 | 10 | [Stronger Semantics for Low-Latency Geo-Replicated Storage](https://www.usenix.org/conference/nsdi13/technical-sessions/presentation/lloyd) (aka Eiger) 11 | 12 | [Don’t Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS](https://www.cs.cornell.edu/courses/cs6452/2012sp/papers/cops-sosp11.pdf) 13 | 14 | ### Stronger than read committed (MAV & RA) 15 | n 16 | MAV provides "cut isolation" and atomicity. RA is MAV which prevents fractured reads. 17 | 18 | [Highly Available Transactions: Virtues and Limitations](https://www.vldb.org/pvldb/vol7/p181-bailis.pdf) 19 | 20 | [Scalable Atomic Visibility with RAMP Transactions](http://people.eecs.berkeley.edu/~alig/papers/ramp.pdf) 21 | 22 | ## Weaker than snapshot isolation levels (PSI, PC-PSI, NMSI) 23 | 24 | Compared to snapshot isolation (SI) PSI, PC-PSI & NMSI allows "long fork" anomaly. 25 | 26 | [Database Replication Using Generalized Snapshot Isolation](https://infoscience.epfl.ch/record/53561/files/srds2005-gsi.pdf) 27 | 28 | [Transactional storage for geo-replicated systems](http://www.news.cs.nyu.edu/~jinyang/pub/walter-sosp11.pdf) (aka Walter, PSI) 29 | 30 | [I Can’t Believe It’s Not Causal! Scalable Causal Consistency with No Slowdown Cascades](https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/mehdi) (aka Occult, PC-PSI) 31 | 32 | [Non-Monotonic Snapshot Isolation](https://hal.inria.fr/hal-00643430v4/document) (aka Jessy, NMSI) 33 | 34 | [Blotter: Low Latency Transactions for Geo-Replicated Storage](https://www.gsd.inesc-id.pt/~rodrigo/blotter-www2017.pdf) (NMSI) 35 | 36 | ## Snapshot isolation 37 | 38 | [Large-scale Incremental Processing Using Distributed Transactions and Notifications](https://research.google/pubs/pub36726/) (aka Percolator) 39 | 40 | ## Serializability 41 | 42 | [Notes on Data Base Operating Systems](https://link.springer.com/chapter/10.1007%2F3-540-08755-9_9) (aka 2PC, two-phase commit, it all started there) 43 | 44 | Let's put 2PC coordinator on Paxos: 45 | 46 | * [Reducing the Cost for Non-Blocking in Atomic Commitment](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.6196&rank=1) (aka MD3PC) 47 | * [Increasing the Resilience of Distributed and Replicated Database Systems](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.3204&rank=1) (aka E3PC) 48 | * [Consensus on Transaction Commit](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.159.6749&rank=1) (aka paxos commit) 49 | 50 | [CockroachDB: The Resilient Geo-Distributed SQL Database](https://dl.acm.org/doi/pdf/10.1145/3318464.3386134) (Parallel Commits over Paxos) 51 | 52 | [Spanner: Google’s Globally-Distributed Database](https://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) (2PC over Paxos) 53 | 54 | Concurrency control schemes: 55 | 56 | * [Extracting More Concurrency from Distributed Transactions](https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-mu.pdf) (aka RoCoCo) 57 | * [An Evaluation of Distributed Concurrency Control](https://www.vldb.org/pvldb/vol10/p553-harding.pdf) 58 | * [Strong consistency is not hard to get: Two-Phase Locking and Two-Phase Commit on Thousands of Cores](https://www.vldb.org/pvldb/vol12/p2325-barthels.pdf) 59 | * Independent transactions (aka one-shot transactions): 60 | 61 | * [Granola: Low-Overhead Distributed Transaction Coordination](https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf) 62 | * [Consolidating Concurrency Control and Consensus for Commits under Conflicts](https://www.usenix.org/system/files/conference/osdi16/osdi16-mu.pdf) (aka Janus) 63 | * [The End of an Architectural Era: (It’s Time for a Complete Rewrite)](https://hstore.cs.brown.edu/papers/hstore-endofera.pdf) (serial execution, aka H-Store) 64 | 65 | Deterministic ordering: 66 | 67 | * [Calvin: Fast Distributed Transactions for Partitioned Database Systems](http://cs.yale.edu/homes/thomson/publications/calvin-sigmod12.pdf) (deterministic transaction, OLLP) 68 | * [SLOG: Serializable, Low-latency, Geo-replicated Transactions](http://www.vldb.org/pvldb/vol12/p1747-ren.pdf) 69 | * [Ocean Vista: Gossip-Based Visibility Control for Speedy Geo-Distributed Transactions](http://www.vldb.org/pvldb/vol12/p1471-fan.pdf) 70 | 71 | Blending of replication with transaction processing 72 | 73 | * [Building Consistent Transactions with Inconsistent Replication](https://irenezhang.net/papers/tapir-sosp15.pdf) (aka TAPIR) 74 | * [Meerkat: Multicore-Scalable Replicated Transactions Following the Zero-Coordination Principle](https://drkp.net/papers/meerkat-eurosys20.pdf) 75 | 76 | ## Special hardware 77 | 78 | [The End of a Myth: Distributed Transactions Can Scale](http://www.vldb.org/pvldb/vol10/p685-zamanian.pdf/) (aka NAM-DB, SI) 79 | 80 | [No compromises: distributed transactions with consistency, availability, and performance](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/SOSP15-final227.pdf) (aka FaRM, serializability) 81 | 82 | [FaSST: Fast, Scalable and Simple Distributed Transactions with Two-Sided (RDMA) Datagram RPCs](https://www.usenix.org/system/files/conference/osdi16/osdi16-kalia.pdf) 83 | 84 | [Eris: Coordination-Free Consistent Transactions Using In-Network Concurrency Control](https://drkp.net/papers/eris-sosp17.pdf) (serializability, independent transactions, deterministic transaction, OLLP) 85 | 86 | ## Limits of distributed transactions 87 | 88 | [The SNOW Theorem and Latency-Optimal Read-Only Transactions](https://www.usenix.org/system/files/conference/osdi16/osdi16-lu.pdf) 89 | 90 | [Causal Consistency and Latency Optimality: Friend or Foe?](https://arxiv.org/abs/1803.04237) 91 | 92 | [Distributed Transactional Systems Cannot Be Fast](https://arxiv.org/abs/1903.09106) 93 | 94 | [Distributed transactional reads: the strong, the quick, the fresh and the impossible](https://arxiv.org/abs/1810.01698) 95 | 96 | ## Testing 97 | 98 | [Elle: Inferring Isolation Anomalies from Experimental Observations](https://arxiv.org/abs/2003.10554) 99 | --------------------------------------------------------------------------------