In real life applications, things can go wrong for scenarios which you have never considered while designing the application. These failures can happen due to…
Partitioning: Handling secondary indexes in partitions
Up until now we have discussed partitioning in a system where we are able to store a record in a partition and retrieve from the…
Partitioning: Consistent Hashing
While ending our discussion on various approaches to partitioning, we saw how the typical hashing approaches fail when we encounter a node failure or when…
Partitioning: Approaches to partitioning
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…