Card 05/ 08

ConceptDifficulty: Intermediate2 min

Availability in Nines: What 99.9% Allows

Three nines is almost nine hours of downtime a year, and each extra nine divides it by ten.

An availability target, written as a percentage such as 99.9%, is a downtime budget: the share of the year the system may be unavailable. Working out that budget in hours or minutes shows what the target really asks for, and whether the design can meet it.

The arithmetic. A year has 365 × 86,400 = 31,536,000 seconds, or 8,760 hours. A target of 99.9% allows the other 0.1% as downtime: 8,760 × 0.001 = 8.76 hours a year. Targets are often called by their count of nines, so 99.9% is "three nines".

Yearly downtime allowed by each target
99%, two nines
87.6 hours
about three and a half days
99.9%, three nines
8.76 hours
99.99%, four nines
52.6 minutes
99.999%, five nines
5.26 minutes

Each nine divides the budget by ten. Moving from three nines to four takes the budget from almost nine hours to under an hour. That changes what is possible: with 52 minutes a year, a planned database upgrade that takes the site down for an hour is already over budget, so upgrades have to happen without downtime.

What a target rules in and out. At two nines, a single server restarted by hand when it fails can be enough. At three nines, someone has to notice and fix a failure within hours, every time. At four, nobody can respond fast enough, so a spare copy of every part must take over by itself. Every added nine buys fewer minutes of downtime with more machines and more automation.

What it is not. Availability is not durability. A system can meet five nines and still lose data, and a system that is down for a day can lose nothing. The budget counts time unavailable, not data lost.

So turn every availability target into hours or minutes before designing: the budget shows whether a person can fix failures or whether the system must fix them itself.