Practice
Solution
Step 1: Understand replication role in CRDT counters
Replication propagates shard states to other replicas for merging. Without it, shards cannot merge and increments are isolated.Step 2: Trace failure impact
Without replication, increments on isolated shards are effectively lost from global view until replication resumes; no blocking occurs.Final Answer:
Option B -> Option BQuick Check:
Replication failure isolates shards, causing lost increments globally [check]
Solution
Step 1: Evaluate persistent connection approaches
gRPC streaming (A) is unreliable on mobile due to network changes and battery constraints; long polling (C) wastes battery and bandwidth.Step 2: Consider platform push services and SMS
Push services (B) handle retries and offline buffering efficiently; SMS (D) is costly and not suitable for all notifications.Final Answer:
Option A -> Option AQuick Check:
Platform push services manage retries and offline buffering [check]
Solution
Step 1: Identify real-time aggregation needs
Millions of listings require low-latency updates; immediate consistency is not mandatory.Step 2: Evaluate architectures
Relational DB (A) is costly and slow at scale; batch jobs (C) have high latency; NoSQL denormalization (D) risks write amplification and stale data. Stream processing (B) provides scalable, low-latency aggregation with eventual consistency.Final Answer:
Option A -> Option AQuick Check:
Stream processing enables scalable real-time aggregation with eventual consistency [check]
Solution
Step 1: Analyze term distribution and query update needs
Skewed term distributions cause TF-IDF to overweight rare terms excessively; frequent updates require robust scoring.Step 2: Evaluate scoring methods
BM25 accounts for term frequency saturation and normalizes by document length, improving relevance in skewed data; TF-IDF and raw TF lack these refinements; vector space ignoring TF loses relevance signals.Final Answer:
Option C -> Option CQuick Check:
BM25 handles skew and length normalization better than TF-IDF [check]
Solution
Step 1: Identify HTTP/3 transport and encryption
HTTP/3 uses QUIC over UDP with built-in TLS encryption per connection, increasing CPU load for handshake and encryption at scale.Step 2: Eliminate other bottlenecks
UDP packet loss is network-level, not server bottleneck; WebSockets are not natively supported by HTTP/3 but unrelated to scaling HTTP/3 itself; HTTP/3 does not use TCP.Final Answer:
Option B -> Option BQuick Check:
QUIC's per-connection TLS handshake CPU load limits HTTP/3 scale [check]
