System Design And Availability Flashcards
What is System Design?
The process of defining the architecture, components, modules, interfaces, and data flow of a system to satisfy specified requirements.
Crucial aspect of software engineering focusing on scalable, reliable, and maintainable systems.
List the key aspects of System Design.
- Scalability
- Reliability
- Maintainability
- Performance
- Security
Each aspect addresses specific requirements for building effective systems.
What is Latency?
The time taken to process a single request or operation.
Measured in units of time such as milliseconds or microseconds.
What is Throughput?
The number of requests or operations a system can handle in a given time period.
Measured in units like requests per second (RPS).
Fill in the blank: The goal of minimizing _______ is to achieve faster response times.
Latency
Fill in the blank: The goal of maximizing _______ is to handle more load.
Throughput
What does the CAP theorem state?
In any distributed system, it is impossible to simultaneously achieve Consistency, Availability, and Partition Tolerance.
Important for understanding trade-offs in distributed systems.
What does Consistency (C) mean in the CAP theorem?
Every read receives the most recent write or an error.
What does Availability (A) mean in the CAP theorem?
Every request receives a (non-error) response, even if some nodes are down.
What does Partition Tolerance (P) mean in the CAP theorem?
The system continues to function despite network partitions.
What are CP Systems?
Systems that prioritize consistency over availability during network partitions.
Example: Databases like HBase.
What are AP Systems?
Systems that prioritize availability over consistency during network partitions.
Example: DNS, Cassandra.
What are the three consistency patterns?
- Strong Consistency
- Eventual Consistency
- Weak Consistency
Each pattern addresses different needs for data accuracy and performance.
What is Strong Consistency?
Guarantees that all reads return the most recent write, achieved by synchronous replication.
What is Eventual Consistency?
Guarantees that all nodes will eventually converge to the same state, given no new updates.