Trying to Wrap My Head Around The Dynamo Storage System: A Deep Dive

Introduction The world of databases is very interesting. To build a loveable product, a core infrastructure piece that's needed is the data persistence layer. I find this data persistence layer to be like a tip of the iceberg, the get and the put calls have so much going under the hood that it's mind blowing … Continue reading Trying to Wrap My Head Around The Dynamo Storage System: A Deep Dive

Introduction to LSM Trees: May the logs be with you

LSM Trees overview This post is a part of a newsletter that I run: “Scamming The Coding Interview“, which is geared towards helping people ACE their coding interviews. We send a coding question on weekdays along with a system design article like this one on weekends. Do subscribe If you find this article valuable. Introduction What will … Continue reading Introduction to LSM Trees: May the logs be with you

Basics of Database Partitioning and Partition Strategies

You are a part of a startup which has recently scaled to reach a huge number of users. This means that the increased number of users are going to generate a huge amount of data that you have to store and manage.It soon becomes evident that managing a huge dataset is a major hurdle to … Continue reading Basics of Database Partitioning and Partition Strategies

Tackling Lost Updates Problem In Database Using Stricter Transaction Isolation Level

Introduction Databases are made for scale and are a highly concurrent system. Thus it is normal for them to expect multiple concurrent connections. Also, in most situations, we'll want our database to be the source of truth and always contain consistent data. There are many concurrency related phenomena that can occur in a database when … Continue reading Tackling Lost Updates Problem In Database Using Stricter Transaction Isolation Level