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…

Concurrency Control, Part III: How Databases Finalise a Conflict-Free Schedule

In my last post, we saw how databases handle conflicts through different philosophies i.e., prevention, validation, versioning, and observation, allowing transactions to run concurrently without violating serializability. But avoiding or resolving conflicts isn’t the end of the story. Even after all conflicts are managed, the database still has…

Concurrency Control, Part II: How Databases Handle Conflicts During Concurrency

In my last post, we saw how databases achieve concurrency by creating wiggle room for interleaving non-conflicting operations through conflict-free schedules. This ability to reoder independent operations without changing the final outcome is what gives serializable systems their performance edge. But we also saw that conflicting operations fix the relative…

Concurrency Control, Part I: How Databases Achieve Concurrency Through Conflict-Free Scheduling

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, essentially exploring how valid serial transaction orders are nothing but a means to achieve concurrency through conflict-free scheduling. We…