Skip to content
About
Main content

What masking a lost node forbids

What this article forbids

  1. Amortizing redundancy. No batching, compression, caching or approximation reduces the need for a second copy. The only lever is the erasure-coding ratio, paid in reconstruction.
  2. Independence. Every durability figure computed from per-node failure rates is an answer about a world without shared racks, firmware, deploys and operators.
  3. Surviving f failures with fewer than f+1 copies, or reaching majority safety with fewer than f+1 votes (that is, a majority of 2f+1). Witnesses unbundle the two; nothing removes either.
  4. Consistency, availability and low latency together under partial failure. The makes the choice explicit and offers no slack.
  5. Protection against logical corruption by adding replicas. It is a different failure class (backup).
  6. Guaranteed convergence from read repair alone. Cold data is never read, so it is never repaired.
  7. Meeting the quorum guarantee with hinted handoff. A is a deliberate downgrade, not an feature.

Escapes and what each costs

EscapeBuysCostsPaid by
Add a linear survivabilitylinear storage and write bandwidth, foreverthe storage bill, with no amortization
(durability)same loss tolerance at ~1.5×reconstruction cost; degraded reads fan out to k nodesthe tail, whenever anything is down
Witnessthe odd vote without the bytesdegrades to zero redundancy, not one sparethe rebuild window
Lower W (async / semi-sync)write latency off the slowest replica's tail = replication lag, largest during the failurethe data, at the worst moment
write availability during partial failurethe quorum guarantee itself; a backlog aimed at the recovered nodereaders, silently
repair targeted at wanted datano convergence for cold datathe data nobody reads
Merkle convergence at cost proportional to divergencedegenerates to a full scan when divergence is largethe repair path, when most needed

The free escape is placement: a copy in a different costs the same as a copy in the same rack and is worth several times more. It is a design decision with no runtime cost, and it is the last thing teams do. This is the third part in a row in which the zero-cost escape is the one reached for last.