Add availability in numbers section (#237)

This commit is contained in:
minhaz 2019-05-12 16:49:23 +05:30 committed by Donne Martin
parent 55d09f611d
commit dd15249b65

View File

@ -112,6 +112,7 @@ Review the [Contributing Guidelines](CONTRIBUTING.md).
* [Availability patterns](#availability-patterns) * [Availability patterns](#availability-patterns)
* [Fail-over](#fail-over) * [Fail-over](#fail-over)
* [Replication](#replication) * [Replication](#replication)
* [Availability in numbers](#availability-in-numbers)
* [Domain name system](#domain-name-system) * [Domain name system](#domain-name-system)
* [Content delivery network](#content-delivery-network) * [Content delivery network](#content-delivery-network)
* [Push CDNs](#push-cdns) * [Push CDNs](#push-cdns)
@ -527,6 +528,52 @@ This topic is further discussed in the [Database](#database) section:
* [Master-slave replication](#master-slave-replication) * [Master-slave replication](#master-slave-replication)
* [Master-master replication](#master-master-replication) * [Master-master replication](#master-master-replication)
### Availability in numbers
Availability is often quantified by uptime (or downtime) as a percentage of time the service is available. Availability is generally measured in number of 9s--a service with 99.99% availability is described as having four 9s.
#### 99.9% availability - three 9s
| Duration | Acceptable downtime|
|---------------------|--------------------|
| Downtime per year | 8h 45min 57s |
| Downtime per month | 43m 49.7s |
| Downtime per week | 10m 4.8s |
| Downtime per day | 1m 26.4s |
#### 99.99% availability - four 9s
| Duration | Acceptable downtime|
|---------------------|--------------------|
| Downtime per year | 52min 35.7s |
| Downtime per month | 4m 23s |
| Downtime per week | 1m 5s |
| Downtime per day | 8.6s |
#### Availability in parallel vs in sequence
If a service consists of multiple components prone to failure, the service's overall availability depends on whether the components are in sequence or in parallel.
###### In sequence
Overall availability decreases when two components with availability < 100% are in sequence:
```
Availability (Total) = Availability (Foo) * Availability (Bar)
```
If both `Foo` and `Bar` each had 99.9% availability, their total availability in sequence would be 99.8%.
###### In parallel
Overall availability increases when two components with availability < 100% are in parallel:
```
Availability (Total) = 1 - (1 - Availability (Foo)) * (1 - Availability (Bar))
```
If both `Foo` and `Bar` each had 99.9% availability, their total availability in parallel would be 99.9999%.
## Domain name system ## Domain name system
<p align="center"> <p align="center">