Skip to content

fix(ch06): improve MC distractor quality for quiz questions - #37

Merged
calmcoconut merged 1 commit into
mainfrom
fix/ch06-mc-distractor-quality
Jun 30, 2026
Merged

calmcoconut merged 1 commit into
mainfrom
fix/ch06-mc-distractor-quality

Conversation

@calmcoconut

Copy link
Copy Markdown
Owner

Summary

Audited all multiple choice questions in Chapter 6 and replaced weak distractors that were too easily eliminated without knowing the material. The goal is that every answer choice should be plausible enough to require genuine understanding to rule out.

Changes

Q2 — Synchronous Replication Trade-offs

  • Option D (replaced): Previous distractor referenced "rolling schema migrations / network jitter" which has no connection to synchronous replication. Replaced with an accurate-sounding description of sync replication that forces students to reason carefully between all four options.

Q4 — Purpose of Taking a Snapshot

  • Option C (replaced): "Run checksum validation on block files" is a real DB operation but obviously irrelevant to follower setup. Replaced with a common misconception DDIA explicitly corrects: that you need to lock leader tables during snapshot creation.
  • Option D (replaced): "Run a vacuum to reclaim disk space" similarly irrelevant. Replaced with a realistic conflation: capturing the LSN/binlog position (a real step) vs. the snapshot itself.

Q6 — Split-Brain Definition

  • Options A, C & D (replaced): All three were hardware-level failure modes unrelated to distributed systems. Replaced with:
    • A follower serving stale reads due to replication lag (confuses split-brain with lag)
    • Consensus failing to elect any leader — the opposite failure mode
    • A fenced old leader still receiving writes — a real edge case students mix up with split-brain

Q17 — Leaderless Write Propagation

  • Option C (replaced): "Replica nodes poll client-side memory buffers" is too absurd to be a credible distractor. Replaced with a gossip-protocol trap: students who know Cassandra uses gossip for metadata propagation may incorrectly apply it to data write propagation.

Questions Left Unchanged

Q1, Q3, Q5, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18 — all deemed well-constructed with plausible distractors.

Audit identified 7 answer choices across 4 questions that were too
easily eliminated without domain knowledge. Replacements ensure all
distractors map to real distributed-systems concepts.

Q2 (sync replication trade-offs) – Option D:
  Was: rolling schema migrations / network jitter (no connection to sync)
  Now: data-loss elimination benefit + write latency drawback (accurate
       description of synchronous replication that forces real reasoning)

Q4 (snapshot purpose for new follower) – Options C & D:
  C was: checksum validation on block files
  C now: briefly locking tables to prevent snapshot contamination
         (common misconception the book explicitly refutes)
  D was: vacuum / disk reclamation
  D now: capturing exact LSN/binlog position for replication catch-up
         (conflates a real step with the snapshot's purpose)

Q6 (split-brain definition) – Options A, C & D:
  A was: physically splitting compute and storage (hardware architecture)
  A now: follower serving stale reads from replication lag (confuses
         split-brain with replication lag anomaly)
  C was: different consensus algorithms for reads vs writes (invented)
  C now: consensus failing to elect any leader (opposite failure mode
         — no leader vs two leaders — highly confusable)
  D was: CPU cache vs RAM desync (hardware nonsense)
  D now: fenced old leader still accepting writes from stale clients
         (real split-brain edge case involving fencing)

Q17 (leaderless write propagation) – Option C:
  Was: replicas polling client-side memory buffers (absurd)
  Now: client writes to nearest node, gossip-propagates to others
       (conflates Cassandra gossip metadata with data write propagation)
@calmcoconut
calmcoconut merged commit e0197b9 into main Jun 30, 2026
1 check passed
@calmcoconut
calmcoconut deleted the fix/ch06-mc-distractor-quality branch June 30, 2026 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant