Consistent Hashing medium
In a consistent hashing ring without VNodes, Node A fails. Its load shifts entirely to Node B (Successor). Node B becomes overloaded and fails. This shifts 2x load to Node C... What does this describe?
- A Split Brain, where two halves of the cluster drift apart and eventually corrupt the shared global state metadata.
- B Cascading Failure (Domino Effect), where the failure of one node overloads the next, leading to a cluster-wide outage.
- C Deadlock, where the remaining nodes spend all their CPU cycles attempting to negotiate new data ownership boundaries.
- D Race Condition, where multiple clients attempt to write to the same key during the initial convergence of the ring.
Answer: B. Cascading Failure (Domino Effect), where the failure of one node overloads the next, leading to a cluster-wide outage.
In a simple ring without VNodes, the immediate clockwise neighbor (Successor) inherited 100% of the dead node's traffic. This sudden +100% spike often tips the successor into failure, which then passes the combined load to the next node. VNodes address this by 'shattering' a node's load across the *entire* cluster, so that if a node fails, every other node only sees a tiny (+1/N) increase in traffic.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- In a 'Smart Client' architecture (e.g., modern Cassandra drivers), how does the client find the right node?
- When a new node (Node X) joins the ring, where does it acquire its initial data from?
- Google's Maglev hashing algorithm (used in their Network Load Balancers) differs from standard Consistent Hashing rings. How does it generate the lookup table?
- Virtual Nodes improve balance but increase metadata size (Memory). How does 'Multi-Probe Consistent Hashing' achieve good balance without VNodes?
- In the Chord DHT protocol (a P2P consistent hashing implementation), naive lookups are O(N). How does Chord optimize this to O(log N)?
- Which of these systems is a famous user of Consistent Hashing?