Availability, Redundancy and Correlated Failure
The arithmetic of nines — why chains multiply, why replicas help less than they look like they should, and the floor that correlated failure puts under any amount of redundancy.
Series: nines erode
The availability of a component is the long-run fraction of requests (or of time) in which it is functioning. Its complement is the unavailability. "Four nines" means , i.e. , i.e. about 53 minutes per year.
If a request requires components with independent availabilities , the end-to-end availability is
so unavailabilities add to first order.
Ten services each at three nines give — two nines, and about 87 hours of annual downtime. Depth in a call graph is expensive, and this is the quantitative case for collapsing dependencies on the critical path.
Parallel: nines accumulate
If replicas each have availability and fail independently, and the system needs at least one,
Two replicas at three nines give — six nines. That is the calculation that makes redundancy look irresistible, and it is the one that is wrong in practice.
Quorums
If the system requires at least of independent replicas,
This is decreasing in ; recovers the parallel formula and recovers the series formula .
The floor
Model failures with a common-cause fraction : with probability a failure event takes down every replica simultaneously, and with probability replicas fail independently. Writing for a single replica's unavailability, the -replica system has
which is decreasing in with
No amount of redundancy reduces unavailability below .
Assumptions
The beta-factor model is the simplest correlated-failure model: it splits failure causes into "independent" and "hits everything", with no intermediate structure. Real correlation is graded — a rack, a zone, a region — and is better modelled by a hierarchy. The theorem's conclusion survives any such refinement, because the coarsest shared level plays the role of .
Key idea
Take , so , and suppose just 1% of failures are common-mode. Two replicas give
against under the independence assumption — an order of magnitude worse — and the floor at is . A 1% correlation costs more than the second replica buys. This is why availability work is dominated by decorrelation — staggered rollouts, separate control planes, different certificate expiries — rather than by adding replicas.
What this does not say
Availability is not latency. A replica that is up but slow counts as available in every formula here, while failing the SLO in What a Serving System Must Guarantee. Systems with generous timeouts convert latency failures into availability successes on the dashboard and into abandoned requests in reality. The honest measure is the fraction of requests served within the objective, which makes availability a special case of the latency SLO rather than a separate quantity.
References
- PaperS. Gilbert, N. Lynch (2002). Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web ServicesThe formal statement and proof of the CAP theorem referenced at the end.
- PaperK. N. Fleming (1975). A Reliability Model for Common Mode Failures in Redundant Safety SystemsOrigin of the beta-factor model for common-cause failure used in the final theorem.
These works are cited as sources to read, not reproduced. All exposition, examples and problems on this site are written independently; where an argument is standard, the citation points to a canonical treatment.
Results stated on this page
- PropositionAvailability of a dependency chainproof includedA request needing k independent services succeeds with probability equal to the product of their availabilities, so unavailabilities approximately add.
- PropositionAvailability of independent replicasproof includedWith n independent replicas and any one sufficing, unavailability is the n-th power of a single replica's, so each replica multiplies the nines.
- PropositionQuorum availabilityproof includedA system needing k of n replicas is available with probability given by a binomial tail, which is maximised at k = 1 and degrades sharply once k exceeds n/2.
- TheoremCorrelated failure puts a floor under redundancyproof includedIf a fraction beta of failures are common-mode, unavailability cannot be driven below beta times a single component's unavailability, however many replicas are added.
- DefinitionAvailabilityThe long-run fraction of requests a component serves successfully, and its complement, unavailability, measured in nines.