Dotted version vector
A dotted version vector separates an update's unique actor-counter identifier from the version vector summarizing its causal past.
The separate identifier is the dot. It can lie beyond the contiguous prefix without including the intervening events. [1]
The 2012 manuscript's constant-time comparison assumes valid causal histories: including an event also includes its past. It is not validation of arbitrary imported metadata. [2]
Riak KV 2.0.4 associates each value with its generating update to avoid false sibling duplication. Clients return the opaque context when updating; real conflicts still need resolution. [3]
DVVSet is a multi-value representation. The authors' DVVSetAck variant preserves gaps when acknowledging a write, avoiding a context that silently covers unread siblings. This variant is not a universal Riak API promise. [4]
Relations
- related
- Version vector, Causal consistency, Read repair
Citations
- Preguica et al. Dotted Version Vectors: Logical Clocks for Optimistic Replication (2010), sections 3-5.
- Preguica et al. Dotted Version Vectors: Efficient Causality Tracking for Distributed Key-Value Stores. Author-hosted manuscript (2012), sections IV-A/B and V.
- Riak KV 2.0.4: Causal Context, DVVs Versus Vector Clocks and Usage.
- Ricardo Goncalves: Dotted Version Vector Sets, pinned author notes, including acknowledgement variants.
Further reading
Sources & caveats
- Reviewed against the 2010 preprint, separately identified 2012 author manuscript, versioned Riak documentation and commit-pinned author notes. No Riak execution or benchmark replication.