System Design Flashcards
What is Scalability?
The capability of a system to grow and manage increased demand.
Horizontal vs. Vertical Scaling
Horizontal scaling means that you scale by adding more servers into your pool of resources.
Vertical scaling means you add more power (CPU, RAM, storage, etc) to an existing server
What is Reliability?
The probability a system will fail in a given period
What is Availability?
It is a simple measure of the percentage of time that a system, service, or a machine remains operational under normal conditions.
Standard measures of efficiency?
Latency and Bandwidth
What is Latency?
The delay to obtain the first item
What is Bandwidth?
The number of items delivered in a given time unit (e.g., a second)
What is Serviceability/Manageability?
Serviceability or manageability is the simplicity and speed with which a system can be repaired or maintained
What is a Load Balancer?
Helps spread traffic across a cluster of servers to improve responsiveness and availability of applications
Benefits of Load Balancing
- Users experience faster service, single servers have to finish their previous task
- Fewer failed or stressed components, instead of single device performing a lot of work, several devices perform a little work
Benefits of Load Balancing
- Users experience faster service, single servers have to finish their previous task
- Fewer failed or stressed components, instead of single device performing a lot of work, several devices perform a little work
How does the load balancer choose the backend server?
- Ensures that the server they choose is actually responding appropriately to requests
- Use a pre-configured algorithm to select one from the set of healthy servers
What is a health check for?
Load balancers should only forward traffic to “healthy” backend servers
What is data partitioning?
A technique used to break a big database into smaller parts
Motivation for data partitioning?
After a certain scale point, it is cheaper and more feasible to scale horizontally by adding more machines than to grow it vertically