Practice
Solution
Step 1: Calculate daily storage
Multiply 500,000 objects by 2MB each = 1,000,000 MB = 1TB per day.Step 2: Eliminate other options
500GB per day, assuming 1MB average object size instead uses wrong object size; 2TB per day, assuming 4MB average object size instead doubles size incorrectly; Cannot estimate without knowing retention period ignores that retention affects total storage, not daily estimate.Final Answer:
Option B -> Option BQuick Check:
500K x 2MB = 1TB daily storage [check]
Solution
Step 1: Identify role of durable queue
Kafka decouples sender and receiver; without it, sender waits synchronously for receiver's ack.Step 2: Trace failure without Kafka
If Bob's server crashes, no ack arrives, send blocks indefinitely and message is lost with no retry mechanism.Final Answer:
Option D -> Option DQuick Check:
No Kafka -> synchronous send blocks, message lost if receiver crashes [check]
Solution
Step 1: Compare modular hashing and consistent hashing
Modular hashing requires full remapping on node changes, causing high overhead.Step 2: Evaluate alternatives
Centralized directory adds latency and single point of failure; rendezvous hashing is good but less common and more complex than consistent hashing with virtual nodes.Final Answer:
Option C -> Option CQuick Check:
Consistent hashing with virtual nodes balances load and minimizes remapping [check]
Solution
Step 1: Understand session timeout role
Session timeout detects leader failure by ephemeral node removal.Step 2: Failure of timeout detection
If timeout fails, ephemeral node remains, so followers do not start election; no split-brain occurs.Final Answer:
Option B -> Option BQuick Check:
Backup election mechanisms prevent split-brain despite timeout failure [check]
Solution
Step 1: Identify stateful bottleneck
Chat servers maintain WebSocket connections statefully, limiting horizontal scaling.Step 2: Understand scaling impact
At 10x scale, existing WebSocket connections cannot be moved, causing chat servers to saturate first.Final Answer:
Option C -> Option CQuick Check:
Stateful WebSocket servers bottleneck scaling before DB or load balancer [check]
