Availability in System Design
Availability is the percentage of time the system is up and working for the needs.
It is a very important factor when for tech companies to provide services while designing systems. As recorded, Meta went down for 6 hours, corresponding to loss of estimated 60 million dollars.
There are levels associated with availability with respect to the service the system is offering. For instance, air traffic control requires a higher level of availability in comparison to the restaurant reservation system.
How availability is measured?
Now you must be thinking about what are these levels and how they are measured. Levels in availability are measured via downtime per year via order of ‘nines’. More ‘nines’ lead to lesser downtime.
It is as shown below via table as follows:
Availability(%) | Downtime/Year |
---|---|
90 | ~36.5 days |
99 | ~3.65 days |
99.9 | ~8.7 Hours |
99.99 | ~52 Minutes |
99.999 | ~6 Minutes |
Note: 5 nines is considered as the golden standard of availability the system is available(up) to perform tasks.
How to increase Availability?
- Eliminate SPOF(major and important)
- Verify Automatic Failover
- Use Geographic Redundancy
- Continue upgrading and improving
From the above understanding, we can land up with two conclusions:
- Availability is low in monolithic architecture due to SPOF.
- Availability is high in distributed architecture due to redundancy.
Important Key Concepts and Terminologies – Learn System Design
System Design is the core concept behind the design of any distributed systems. System Design is defined as a process of creating an architecture for different components, interfaces, and modules of the system and providing corresponding data helpful in implementing such elements in systems.
In this article, we’ll cover the standard terms and key concepts of system design and performance, such as:
- Latency,
- Throughput,
- Availability,
- Redundancy,
- Time
- CAP Theorem
- Lamport’s Logical Clock Theorem.
Let us see them one by one.
Contact Us