System Design
What is system design?
Goal
System design in real life
Some common resources
Time
Space
Computation
Money
Labor
Social constraints
Scaling
Common design techniques
Top level goal
Multiplexing
Multiplexing (contd.)
Statistical multiplexing
Statistical multiplexing (contd.)
Example of statistical multiplexing gain
Pipelining
Pipelining (contd.)
Pipelining (contd.)
Batching
Exploiting locality
Optimizing the common case
Hierarchy
Binding and indirection
Virtualization
Randomization
Soft state
Exchanging state explicitly
Hysteresis
Separating data and control
Extensibility
Performance analysis and tuning