Scaling Flashcards
What does DNS stand for?
Domain Name Service
What does the DNS Server do?
Converts website domain names to IP Addresses
What does HTTP stand for?
Hypertext Transfer Protocol
What does IP stand for?
Internet Protocol
What does JSON stand for?
JavaScript Object Notation
Under what circumstances might you use a non-relational database over a relational database?
- you need super-low latency
- unstructured data
- You only need to serialize / deserialize data
- You need to store a large amount of data
What are the 4 common types of non-relational databases?
- key-value stores
- graph stores
- column stores
- document stores
What is a join operation?
For databases
Join combines data from multiple tables into a new dataset based on a specified condition (like a common field)
Do non-relational databases support join operations?
Generally, no
What is the difference between vertical scaling and horizontal scaling?
- Vertical Scaling involves making your existing resources more powerful
- Horizontal Scaling involves adding more resources to your pool of resources
What are 2 reasons you would prefer horizontal scaling over vertical scaling
- Vertical scaling has a hard limit
- Vertical scaling does not have failover/redundancy.
What does a load balancer do?
distributes incoming traffic among servers.
In the context of Database Replication
Explain the difference of master DBs and slave DBs
- master DBs handle all write operations
- slave DBs handle all read operations
What are 3 key benefits of database replication?
- Performance (parallelization)
- Reliability
- High Availability
Describe the data flow for a read-through cache
read(x):
- If x not in cache:
- cache[x] := db.read(x)
- return cache[x]