Quorum clock: leaderless distributed clock
Clock can be seen as a device to measure time or a source of monotonic increasing sequence. In this post we see it as the latter and design fault-tolerant contention-free distributed clock.
Making Jepsen run for hours
'Testing shared memories' paper contains a way to test linearizability in linear time, let's apply it to Jepsen.
Old fast linearizability check
It's well known in the distributed system community that linearizability testing is NP-complete; luckily in some cases, it's possible to do it in O(n ln n).
In search of a simple consensus algorithm
The modern landscape of consensus protocols is dominated by Raft; despite being understandable it isn't simple and has performance penalty. The post focuses on an alternative which has better performance characteristics and is simple enough to be implemented in 500 lines of code
Visualization of a Paxos-based distributed state machine
Step-by-step visualization of a Single Decree Paxos based distributed state machine
Step-by-step visualization of Non Blocking Read Committed distributed transactions
Serializable cross shard client-side transactions
Step-by-step visualization of cross shard transactions
Best of both worlds: Raft's joint consensus + Single Decree Paxos
Adapting the Raft's joint consensus membership change algorithm to work with Single Decree Paxos
Read write quorums in Paxos
About read write quorums in plain Paxos
How Paxos works
A memo on how Paxos works
Dynamic Plain Paxos
Dynamic Plain Paxos is an extension and a drop-in replacement for the classic Paxos algorithm that allows to change the membership during the reaching of consensus
Transactions in MongoDB, Cassandra, Zookeeper and others
How to do multi-key optimistic transactions if the storage supports only per-key CAS