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).