Graph
Vector Clock

🧭Vector Clock

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.

Source

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.

Source

Causation Partial Ordering Distributed Systems Conflict Resolution Versioning Eventual Consistency Dynamo Isolation (ACID) Merging

COMPETING TERMS

Lamport Clock

KNOWLEDGE AREAS

Infrastructure Data Storage & Operations Software Engineering

TARGET AUDIENCE

Software Developer Data Engineer Cloud Architect Software Architect

EXTERNAL SOURCES

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