Practice
Solution
Step 1: Identify the role of consistent hashing
Consistent hashing distributes keys to nodes such that when nodes join or leave, only a small subset of keys need reassignment, minimizing reshuffling.Step 2: Eliminate other components
Vector clocks handle version conflicts but do not distribute keys. Gossip protocol manages cluster membership but not key distribution. Quorum replication ensures durability but does not affect key assignment.Final Answer:
Option C -> Option CQuick Check:
Consistent hashing minimizes key remapping on node changes [check]
Solution
Step 1: Identify priority and scale requirements
A relational DB (A) struggles with high write throughput and priority ordering at scale; simple FIFO queues (C) lack priority support; cron jobs (D) do not coordinate distributed execution or priority.Step 2: Evaluate distributed priority queue
A distributed priority queue with partitioned shards (B) can scale horizontally, maintain priority ordering per shard, and support exactly-once execution semantics.Final Answer:
Option A -> Option AQuick Check:
Distributed priority queue shards scale and preserve ordering [check]
Solution
Step 1: Trace failure impact of Progress Worker crash
Progress Worker crash before persistence means recent watch time is lost.Step 2: Evaluate user experience on resume
System detects missing progress update and returns error preventing continuation (User receives an error message preventing course continuation until retry), rather than silently resetting or duplicating progress.Final Answer:
Option C -> Option CQuick Check:
Crash causes error blocking course continuation until retry [check]
Solution
Step 1: Understand Bloom filter removal impact
Without Bloom filters, no pre-filtering occurs, so all lookups go to backend.Step 2: Analyze failure modes
Backend overload (A) is possible but not guaranteed. Increased latency (B) is true but not a failure mode. False positives (D) come from Bloom filters, not their absence. False negatives (C) occur if system relies on Bloom filter to avoid missing keys.Final Answer:
Option B -> Option BQuick Check:
Without Bloom filter, system risks missing keys due to no probabilistic filtering [check]
Solution
Step 1: Analyze stateful connection scaling
WebSocket servers (D) hold state per connection; scaling requires complex connection migration or sticky sessions.Step 2: Compare other bottlenecks
Relational DB (A) can be sharded; transcoding (B) parallelizes; Feed Ranking (C) uses caching and sharding.Step 3: Identify first failure point
WebSocket servers hit connection limits first due to stateful nature and limited horizontal scaling.Final Answer:
Option A -> Option AQuick Check:
Stateful WebSocket servers bottleneck first due to connection affinity [check]
