
System Availability - Understanding Uptime and SLAs
Complete guide to system availability covering uptime calculations, SLA requirements, five nines availability, redundancy strategies, and high availability architecture.

Complete guide to system availability covering uptime calculations, SLA requirements, five nines availability, redundancy strategies, and high availability architecture.

Complete guide to failure models covering crash failures, omission failures, Byzantine failures, network partitions, and fallacies of distributed systems.

Complete guide to consistency models covering strong consistency, eventual consistency, CAP theorem, linearizability, and trade-offs in distributed systems.

Understanding abstractions in system design covering abstraction layers, APIs, interfaces, and how they help manage complexity in distributed systems.

What is caching? Storing frequently accessed information closer to where you need it for faster subsequent access to it. Caching is so ubiquitous that you probably have benefited from it without even knowing about it. Your computer or your phone or other mobile devices use caching at different levels like at its hard drive, CPU, GPU, browser, operating system etc to improve its performance. And when you think about things outside your computer, like databases, web servers, DNS etc also use caches for the same reason, improving performance, by keeping frequently requested for items closest to where it is accessed, in a faster, more volatile storage system. Also cache storage is often times more expensive than regular storage, as it is often stored either in super fast access memory or solid state drives. Hence choosing what you store in the cache and how much you store in the cache is also something you must consider before deciding to use a cache. ...