Why it matters

Skipping repair causes data resurrection: deleted data reappears when a tombstone expires while data still exists on lagging replica. Regular repair prevents this.

Advertisement

The architecture

Merkle tree: hash tree of data ranges. Comparing Merkle trees between replicas identifies divergent ranges cheaply.

Repair streams: for divergent ranges, transfer newest data from each replica to others.

Repair processBuild Merkle treesper replicaComparefind divergencesStream missing datareconcileMust run every gc_grace_seconds (default 10 days) to prevent tombstone-driven resurrection
Repair reconciliation.
Advertisement

How it works end to end

Full repair: covers all data. Expensive; run weekly at most.

Incremental repair: tracks previously-repaired ranges; only repairs new ones. Fast but has caveats (anti-compaction).

Subrange repair: repair specific token ranges. Enables scheduling.

Reaper (Cassandra Reaper tool): automates scheduling and monitoring of repair.