Before diving into approaches to partition a database, let us clear up one thing in aspect of partition and its relationship with replication. Partitioning &…
Partitioning: Introduction to partitioning
Until now we have seen how replication helps in scaling a read-intensive workload. We keep one or more nodes as leaders that handle write traffic…
Replication: Handling Concurrent Writes
In all the replication methodologies, we have seen a common issue which all of the replication methods fail to solve completely and that is handling…
Replication: Maintaining a Quorum
In Introduction to Leaderless Replication we saw that Quorum plays a huge part. We need some way to ensure that storage operations are persisted correctly…
Replication: Introducing leaderless replication
Up until now in a single leader and multi-leader replication our assumption was that client will send an update request to leader which in turn…
Replication: Conflict resolution in multi-leader replication
We ended our introduction to multi-leader replication system by stating that one of the main challenges with a multi-leader replication is conflict resolution. When a…
Replication: Can we have more than one leader?
Answer to above question is a resounding YES! Up until now we have covered leader-follower based replication where all the writes go through the leader…
Replication: Issues with replication lag
In the last post about comparison between synchronous & asynchronous replication, we saw how synchronous replication can end up blocking our client when trying to…
Replication: Synchronous vs Asynchronous replication
Replication solves another problem in addition to reliability. It allows the system to scale along with the increase in request load. In a typical leader-follower…
Replication: Handling node failure
Failure is the norm in distributed systems. It’s a question of when and not if. These failures can be due to various reasons. Node failure…