System Design
System design
First no limitation
Then enroll the real world:
Horizontal scaling
Vertical Scaling
Load balancer: server farm: increase security
Big data: database partitioning(sharding): key sharding/vertical lookup table
Caching:
Network:Latency, bandwidth, throughput
Asynchronous processing/Queues
Multi thread; map reduce
Scalability
Key considerations
Some pre:
Failures:
Availability:
Reliability:
Read-heavy/write-heavy:
Security:
Map reduce
Do work parallel