Notes on the Amazon Aurora Paper

This is my notes on the paper: Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases [https://www.allthingsdistributed.com/files/p1041-verbitski.pdf]. What's Amazon Aurora Functionally speaking, an instance of Aurora is same as an instance of MySQL. The differences are Aurora decouples compute from storage and it's…

Non-blocking 2pc

2pc is a Blocking Protocol Two Phase Commit is a blocking protocol. It blocks when Coordinator is not available. Not only the transaction cannot make progress. Other transactions that conflict with the same set of keys are also blocked. Non-blocking 2pc Alternative Daniel Abadi proposed a non-blocking alternative for 2pc…

Consistent Badge Count at Scale

-- Scalable Read Atomic Transaction for Partitioned Datastore A Story You are building a messaging app. You start with a non-partitioned single database, where you store unseen message count and the actual messages in two different tables. It served you well ... until more and more people are using your app…

Paxos at its heart is very simple

> The Paxos algorithm, when presented in plain English, is very simple. -- Leslie Lamport 2001 [1] I am going to try explain the single decree Paxos in a way, hopefully, that's easy to understand. To this day, IMO, John Ousterhout's lecture on Paxos [https://www.youtube.com/watch?v=JEpsBg0AO6o&…

Paxos Replication vs. Leader-Follower Replication

If you are operating some stateful services, chances are you have to replicate your data. There are use cases of single replica database, in which cases, the user can tolerate dataloss. It's optimizing for throughput, low latency, etc. But vast majority of stateful services have to deal with replication. Replication…

Different ways of caching and maintaining cache consistency

Phil Karlton [http://www.meerkat.com/karlton/] once said, "There are only two hard things in Computer Science: cache invalidation and naming things.[1]" There are other good variations of the quote. Mine personal favorite is Jeff Atwood's quote [https://twitter.com/codinghorror/status/506010907021828096?lang=en], "There are two…

请不要再称数据库是CP或者AP (Please stop calling databases CP or AP)

经Martin Kleppman本人同意,这篇文章是他英文原文 [https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html] 的中文翻译。Authorized by Martin Kleppmann, this is a Chinese translation of his original blog post [https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html] . 在 Jeff Hodges 精彩的博客文章给年轻人关于分布式系统的笔记 [https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/] 中,他建议我们用CAP定理…

State Machine and Synchronization

This is the second of two notes of Lamport's Time-Clock paper[1]. The first one is here [https://blog.the-pans.com/time-and-order/]. The problem We will be focusing on how to use Logical Clock to solve an actual problem. The problem is to grant the resource to a process, that…