Version Vectors
Summary: A mechanism for tracking causal dependencies between concurrent writes in distributed systems, allowing the system to distinguish between concurrent and sequential operations.
Sources: chapter5
Last updated: 2026-04-15
Version vectors (a generalization of vector clocks) are used in leaderless and multi-leader replication systems to detect and resolve conflicts by tracking which writes happened before which other writes (source: chapter5, p. 191).
How it Works
A version vector is a collection of version numbers, one for each replica. Each replica increments its own version number when it receives a write and also keeps track of the version numbers it has seen from other replicas (source: chapter5, p. 191).
By comparing the version vectors of two different writes, the system can determine whether one write happened before another (causal dependency) or whether they happened independently (concurrency) (source: chapter5, p. 191).