Talk type: Talk
What it takes to achieve linearizability in a distributed system
Nowadays one can’t imagine a DBMS without replication. Replication improves data durability in presence of failures and lets to distribute read (and sometimes write) load among several instances.
All these advantages come with their own price, of course. In a distributed system one might encounter data anomalies which wouldn’t be possible with storing all the data on a single instance. For example, reading from a replica might return stale results, and modifying the data on multiple instances independently leads to conflicts, which have to be dealt with.
For some usecases this is fine, while for others more strict guarantees are required.
Linearizable consistency level hides these complications from the user and allows to access the distributed system just like it was a single instance.
In this talk I’ll cover the possible ways to achieve linearizability in a distributed system, using Tarantool DBMS as an example, and talk about the tradeoffs it demands.