System design and scalability
Scalability
Horizontal vs vertical scaling
Vertical scaling means increasing the resources of a specific node. It's easier than horizontal scaling but it's limited by memory or disk space.
Horizontal scaling means increasing the number of nodes.
Load balancer
Database denormalization and NOSQL
Database partitioning (sharding)
Caching
Asynchronous processing & queues
Network metrics
1.Bandwidth: The maximum amount of data that can be transfer (bits/gigabytes per second)
2.Throughput: The actual amount of data that is transferred
3.Latency: The delay between the sender sending the sending information and the receiver receiving it
增加傳送道的寬度: Bandwidth, Throughput增加, 但Latency不變
縮短傳送道: Bandwidth, Throughput不變, 但Latency減少
加速: Bandwidth, Throughput增加, Latency減少
MapReduce
Considerations
Failures
Availability
Reliability
Read-heavy: cache
Write-heavy: queuing up the writes
Security
Last updated