How does a vector clock detect concurrent events?
A vector clock is a counter for each node in the cluster. Two events are concurrent if neither event's vector is less-than-or-equal (elementwise) to the other. This means no message passed between them, so neither caused the other—a genuine conflict requiring resolution, not silent data loss.
Answered in
Vector Clocks: Detecting Causality in Distributed SystemsVector clocks solve distributed ordering: when wall-clock timestamps fail to detect concurrent writes, vector clocks reveal true causality and conflicts.
Read the full analysisOther questions this article answers
More system design questions
- Why does an index's internal data structure matter if it all ends up 'faster than a scan'?
- Why is disk I/O the thing index structures are actually optimizing for?
- Why can't a hash index handle range queries?
- What makes a bitmap index different from a B-tree, and when is it better?
- Why do B-trees stay balanced automatically as data is inserted?
- Why does a database need an index at all — why can't it just scan the table?
- When is a hash index better than a B-tree index?
- What is a composite index and why does column order matter?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the System Design beat.