Conflict Serializability vs View Serializability

In my previous blog, I explored how serializability ensures isolation across transactions while linearizability guarantees real-time consistency of single objects. This post builds on that discussion by diving deeper into serializability itself. Concurrency control in databases is all about ensuring that transactions running in parallel behave as if they had…

Using Binomial Distribution to Model Data Durability

Durability requirements influence the choice of data protection mechanisms, such as replication, erasure coding, and RAID parity configurations. Achieving higher durability involves trade-offs between redundancy, storage usage ratio, and computational complexity. Replication achieves durability by creating multiple copies of data, which increases redundancy but reduces the storage usage ratio. In…

Without a Leader, There Is No Consensus

Consensus is what prevents distributed systems from fracturing into multiple, conflicting realities. It ensures not just that replicas hold the same data, but in the same order, under the same history. This requires more than copying data between nodes. It requires coordination. It requires leadership. In consensus protocols like Raft,…

WAL ≠ Replicated Log

In my last blog, we looked at how the Write-Ahead Log (WAL) underpins durability across different replication designs. But it’s equally important to understand why, in the world of consensus, the same idea is called a replicated log instead. A Write-Ahead Log (WAL) remembers what happened locally. A replicated…