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…
Transactions: Write skew & why we need serialization?
Up until now we have seen various problems that can arise due to concurrent request for both read as well as write access of a…