NEW
A mechanism capturing partial ordering of events with per-process counters.
DESCRIPTION
Vector clocks maintain a vector of logical counters, one per process, enabling detection of causality and concurrency. They extend Lamport clocks by determining whether events are concurrent or causally related. Systems like Dynamo and Riak use vector clocks for versioning and conflict resolution. The cost grows with the number of participants, prompting compact variants. They are standard in eventually consistent designs.
ALTERNATIVE DEFINITIONS
Wikipedia
A vector clock is an algorithm for generating partial ordering of events in a distributed system and detecting causality violations.
Explicitly ties to partial ordering and causality detection.
Amazon (Dynamo paper)
In Dynamo, vector clocks are used to capture causality between different versions of the same object.
Shows practical use for object versioning in a large-scale system.
RELATED TERMS
Causation Partial Ordering Distributed Systems Conflict Resolution Versioning Eventual Consistency Dynamo Isolation (ACID) Merging
COMPETING TERMS
KNOWLEDGE AREAS
Infrastructure Data Storage & Operations Software Engineering
TARGET AUDIENCE
Software Developer Data Engineer Cloud Architect Software Architect
EXTERNAL SOURCES
- Wikipedia - Vector clock
- Amazon (Dynamo paper) - Vector clocks for versioning conflicts
- Riak - Vector clocks in Riak KV
TOP QUESTIONS
Why use Vector Clocks instead of Lamport Clocks?
Vector clocks detect concurrency and causal relationships, whereas Lamport clocks only order events without concurrency detection.
Category: Comparison
What are the drawbacks of Vector Clocks?
Vector size grows with participants, increasing metadata overhead and complicating large dynamic systems.
Category: Risk
How do Vector Clocks help in conflict resolution?
They identify concurrent versions, enabling application-specific merges or resolution policies.
Category: Application
Where are Vector Clocks used?
In eventually consistent stores like Dynamo and Riak for versioning and reconciliation.
Category: Application
How to test Vector Clock implementations?
Ensure partial ordering, concurrency detection, and correct merge semantics under reordering and delays.
Category: Testing
Are there alternatives to Vector Clocks?
Hybrid logical clocks and dotted version vectors reduce overhead while preserving useful causality information.
Category: Alternatives
Do Vector Clocks require synchronized time?
No, they rely on logical counters updated on events and message receipt.
Category: Misunderstanding
What’s a hot topic around Vector Clocks?
Compact causality tracking for large-scale, dynamic cluster membership.
Category: Topic
How do Vector Clocks interact with CRDTs?
They can complement CRDT metadata to reason about causality when resolving operations.
Category: Concept