Skip to content
About
Main content

What gray failure forbids

Why is a correct failure detector impossible, and which escapes remain?

What this article forbids

It forbids a correct . Not a good one, not a well-tuned one: a correct one, in an asynchronous system, as a matter of logic. Therefore every automated failover is a bet that can be wrong. That is why fencing exists: it makes a possibly-still-alive old leader harmless. The system must remain correct when the detector is wrong, because it will be wrong.

It forbids trusting self-reported health for anything that matters. And it forbids assuming that a green control plane means a working : they are separate observations of separate quantities, and the whole failure mode is the case where they disagree.

Escapes and costs

EscapeBuysPaid in
Watchdog / suicide on missed deadlineDecidability: manufactured Capacity destroyed; false positives
Client-observed health, outlier ejectionMeasures the quantity clients care aboutMixes server, network and client without cross-tabulation
Peer-relative outlier detectionCatches below absolute thresholdsBlind to correlated degradation; needs similar work across peers
/ fail open on mass unhealthinessStops detector error from becoming a total outageKnowingly serves from degraded hosts
HedgingRandom Extra load; useless against deterministic ones
Data validation as detectorThe only gray-failure detector in the data planeCompute cost; maintained expectations that drift