parent
f5e980d8ec
commit
cab06b46da
10 changed files with 29 additions and 22 deletions
@ -1 +1,3 @@ |
||||
# Who is this guide for |
||||
# Who is this guide for? |
||||
|
||||
This guide is intended for a wide range of individuals including software engineers, system administrators, and IT professionals who are interested in understanding the principles and best practices of designing scalable systems. It is also useful for those who are preparing for system design interviews as it provides a comprehensive understanding of the key concepts and considerations involved in the design process. The guide covers a variety of System Design topics with detailed explanations and external links for learning more about each topic. |
@ -1,7 +1,10 @@ |
||||
# Latency vs Throughput |
||||
|
||||
Latency is the time to perform some action or to produce some result. Throughput is the number of such actions or results per unit of time Generally, you should aim for maximal throughput with acceptable latency. |
||||
Latency and throughput are two important measures of a system's performance. **Latency** refers to the amount of time it takes for a system to respond to a request. **Throughput** refers to the number of requests that a system can handle at the same time. |
||||
|
||||
Generally, you should aim for maximal throughput with acceptable latency. |
||||
|
||||
Learn more from the following links: |
||||
|
||||
- [System Design: Latency vs Throughput](https://cs.fyi/guide/latency-vs-throughput/) |
||||
- [Understanding Latency versus Throughput](https://community.cadence.com/cadence_blogs_8/b/fv/posts/understanding-latency-vs-throughput) |
@ -1,13 +1,14 @@ |
||||
# Availability vs Consistency |
||||
|
||||
A service is scalable if it results in increased performance in a manner proportional to resources added. Generally, increasing performance means serving more units of work, but it can also be to handle larger units of work, such as when datasets grow. |
||||
Availability refers to the ability of a system to provide its services to clients even in the presence of failures. This is often measured in terms of the percentage of time that the system is up and running, also known as its uptime. |
||||
|
||||
Another way to look at performance vs scalability: |
||||
Consistency, on the other hand, refers to the property that all clients see the same data at the same time. This is important for maintaining the integrity of the data stored in the system. |
||||
|
||||
- If you have a performance problem, your system is slow for a single user. |
||||
- If you have a scalability problem, your system is fast for a single user but slow under heavy load. |
||||
In distributed systems, it is often a trade-off between availability and consistency. Systems that prioritize high availability may sacrifice consistency, while systems that prioritize consistency may sacrifice availability. Different distributed systems use different approaches to balance the trade-off between availability and consistency, such as using replication or consensus algorithms. |
||||
|
||||
Have a look at the following resources to learn more: |
||||
|
||||
- [A Word on Scalability](http://www.allthingsdistributed.com/2006/03/a_word_on_scalability.html) |
||||
- [Scalability, availability, stability, patterns](http://www.slideshare.net/jboner/scalability-availability-stability-patterns/) |
||||
- [CAP Theorem](https://www.youtube.com/watch?v=_RbsFXWRZ10&t=1s) |
||||
- [CAP Theorem Revisited](https://robertgreiner.com/cap-theorem-revisited/) |
||||
- [A plain english introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem) |
||||
- [CAP FAQ](https://github.com/henryr/cap-faq) |
Loading…
Reference in new issue