A database system is built by gluing together multiple pieces of technology. One such piece is a storage engine which is responsible for providing an…
Paper Notes: Zookeeper – Wait-free coordination for Internet-scale systems
In a distributed computing environment, servers often need to work with certain shared set of attributes such as locks, system configurations etc. In order to…
Paper Notes: Dynamo – Amazon’s Highly Available Key-value Store
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…