System Design Flashcards

1
Q

What is Scalability?

A

The capability of a system to grow and manage increased demand.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Horizontal vs. Vertical Scaling

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Reliability?

A

The probability a system will fail in a given period

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Availability?

A

It is a simple measure of the percentage of time that a system, service, or a machine remains operational under normal conditions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Standard measures of efficiency?

A

Latency and Bandwidth

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Latency?

A

The delay to obtain the first item

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Bandwidth?

A

The number of items delivered in a given time unit (e.g., a second)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Serviceability/Manageability?

A

Serviceability or manageability is the simplicity and speed with which a system can be repaired or maintained

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a Load Balancer?

A

Helps spread traffic across a cluster of servers to improve responsiveness and availability of applications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Benefits of Load Balancing

A
  • 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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Benefits of Load Balancing

A
  • 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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does the load balancer choose the backend server?

A
  1. Ensures that the server they choose is actually responding appropriately to requests
  2. Use a pre-configured algorithm to select one from the set of healthy servers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a health check for?

A

Load balancers should only forward traffic to “healthy” backend servers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is data partitioning?

A

A technique used to break a big database into smaller parts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Motivation for data partitioning?

A

After a certain scale point, it is cheaper and more feasible to scale horizontally by adding more machines than to grow it vertically

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are Indexes?

A

Indexes can be created using one or more columns of a database table, providing the basis for both rapid random lookups and efficient access of ordered records.

16
Q

What are Indexes?

A

Indexes can be created using one or more columns of a database table, providing the basis for both rapid random lookups and efficient access of ordered records.

17
Q

What is a proxy server?

A

Essentially, a proxy server is a piece of software or hardware that facilitates the request for resources from other servers on behalf of clients.

18
Q

What is Redundancy?

A

Redundancy is the duplication of critical components or functions of a system with the intention of increasing the reliability of the system, usually in the form of a backup or fail-safe

19
Q

SQL vs NoSQL: Storage

A

SQL: SQL stores data in tables where each row represents an entity and each column represents a data point about that entity

NoSQL: NoSQL databases have different data storage models. The main ones are key-value, document, graph, and columnar

20
Q

SQL vs NoSQL: Schema

A

SQL: Each record conforms to a fixed schema

NoSQL: Schemas are dynamic

21
Q

SQL vs NoSQL: Querying

A

SQL: Uses SQL for manipulating data

NoSQL: Queries are focused on a collection of documents

22
Q

SQL vs NoSQL: Scalability

A

SQL: SQL databases are vertically scalable.

NoSQL: NoSQL databases are horizontally scalable

23
Q

Reasons to use SQL databases

A
  • Your data is structured and unchanging
  • If you business is not experiencing massive growth that would require more servers
24
Q

Reasons to use NoSQL databases

A
  • Storing large volumes of data that often have little to no structure
  • Rapid development, it doesn’t need to be prepped ahead of time
25
Q

What is ingress bandwidth?

A

Download speed

26
Q

What is egress bandiwdth?

A

Upload speed