Get the latest tech news

Versioning versus Coordination


Today, we’re going to build a little database system. For availability, latency, and scalability, we’re going to divide our data into multiple shards, have multiple replicas of each shard, and allow multiple concurrent queries.

Serializability, in one common definition, would allow read-only transactions to pick almost any version (including the beginning of time, returning empty results for all reads). This allows us to avoid all coordination between readers, including reads inside read-write transactions (e.g. notice for T2 ’s UPDATE has to be a read-modify-write to find the new value for each row). This is an extremely powerful tool, because avoiding coordination improves throughput and scalability, reduces latency and cost, helps availability, and simplifies the design of systems.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of coordination

coordination

Related news:

News photo

Every System is a Log: Avoiding coordination in distributed applications