2020-06-27
Pacified consensus: how to retrofit leaderlessness into a Paxos or Raft based protocol
A leaderless consensus protocol built in a modular way on top of known consensus protocol. Its modularity helps in understanding and retrofitting into existing solutions.
2018-10-01
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.
2018-07-20
Making Jepsen run for hours
'Testing shared memories' paper contains a way to test linearizability in linear time, let's apply it to Jepsen.
2017-07-16
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).
2017-02-15
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
2016-05-01
Visualization of a Paxos-based distributed state machine
Step-by-step visualization of a Single Decree Paxos based distributed state machine
2016-04-07
RAMP transaction
Step-by-step visualization of Non Blocking Read Committed distributed transactions
2016-03-02
Serializable cross shard client-side transactions
Step-by-step visualization of cross shard transactions
2016-01-05
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
2015-12-30
Read write quorums in Paxos
About read write quorums in plain Paxos
2015-09-16
How Paxos works
A memo on how Paxos works
2015-07-19
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
2012-09-01
Transactions in MongoDB, Cassandra, Zookeeper and others
How to do multi-key optimistic transactions if the storage supports only per-key CAS