Practice
Solution
Step 1: Understand Bloom filter role in reads
Bloom filters prevent unnecessary disk reads for non-existent keys but do not affect correctness of existing keys.Step 2: Trace failure without Bloom filters
Without Bloom filters, reads for non-existent keys cause disk lookups, increasing latency but do not cause incorrect key-not-found errors for existing keys; however, missing Bloom filters can cause stale data to be returned if caching is mismanaged.Final Answer:
Option D -> Option DQuick Check:
Removing Bloom filters risks incorrect key-not-found errors due to stale cache [check]
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: Trace failure impact of Signaling Server crash after forwarding offer
If the server crashes before recording the offer state, it may resend the offer when restarted, causing duplicates.Step 2: Analyze other options
No immediate error (A) is unlikely; indefinite ringing (B) happens if answer lost but not duplicated; media server (D) does not start without signaling.Final Answer:
Option D -> Option DQuick Check:
Signaling crash causes duplicate offers, confusing Bob's client [check]
Solution
Step 1: Analyze real-time analytics requirements
High throughput and near real-time aggregation require decoupling ingestion and processing.Step 2: Evaluate architectures
Kafka streaming (B) supports scalable event ingestion and asynchronous processing; relational DB (A) can't handle high write load; flat files (C) have high latency; NoSQL eventual consistency (D) may cause stale reads.Final Answer:
Option A -> Option AQuick Check:
Kafka decouples ingestion and processing for scalable real-time analytics [check]
Solution
Step 1: Compare memory usage and accuracy
Redis Sets store all unique IDs exactly, which is memory prohibitive at 100 million users; HyperLogLog uses fixed small memory with ~2% error.Step 2: Evaluate operational needs
HyperLogLog supports efficient merges and approximate counts, suitable for large scale; Redis Sets are exact but scale poorly in memory.Final Answer:
Option D -> Option DQuick Check:
HyperLogLog trades accuracy for fixed small memory at scale [check]
