Dynamo is one of the most influential papers in the domain of distributed storage technologies. It has inspired multiple open source databases such as Cassandra,…
Sloppy Quorum and Hinted handoff: Quorum in the times of failure
As part of a blog post in the past, we discussed how Quorums play a huge part in multi-node system. In order to revisit the…
Vector Clocks: Keeping time in check
“Lost time is never found again.” – Benjamin Franklin. The above quote is true to its core in context of distributed systems. If you miss…
Implementing Raft consensus algorithm in Go
As part of my next post, I was looking to review the paper for Raft consensus algorithm. But this is one paper which I found…
Paper Notes: Cassandra- A Decentralized Structured Storage System
Cassandra is a distributed storage system that focusses on providing a highly scalable & available service for storing very large amount of data. As part…
Paper Notes: Kafka – a Distributed Messaging System for Log Processing
Kafka was developed at LinkedIn for collecting & delivering high volume of log data with low latency. The paper dives into the design of Kafka…
Paper Notes: Scaling Memcache at Facebook
As part of this post we will be looking into the paper Scaling memcache at Facebook and try to understand the challenges Facebook faced while…
Transactions: Serializable Snapshot Isolation
Working with various isolation levels, we have seen a compromise being done between getting things correct and getting things fast. It feels like being stuck…
Transactions: Two-phase Locking
Two-phase locking(2PL for short) is one of the most well-known algorithm for serializability. Note that it is totally different concept from two-phase commit even though…
Transactions: Introduction to serializability techniques
So far we have seen various problems that arise with concurrent transactions and how different approaches try to tackle them(and sometimes fail). The major issue with…