What Analytical Performance Modeling Teaches Us About
Computer Systems Design
Computer systems design is based on many commonly-held beliefs and
heuristics, many of which have never been challenged:
- Thousands of server farm "load balancing" policies do exactly
that -- they aim to balance the load among the servers. But is load
balancing necessarily a good thing?
- Consider a choice between a single machine with speed s, and n
identical machines with speed s/n. Which would you choose? Are you
always right?
- Scheduling policies which favor "short" jobs, like
Shortest-Remaining-Processing-Time-First (SRPT) are often avoided
because it is feared that they starve the "long" jobs. But does
favoring "short" jobs necessarily hurt "long" ones?
- Cycle stealing between a "donor" machine and a "beneficiary"
machine is a central theme in distributed systems. The donor machine
helps the beneficiary machine with jobs, whenever the load at the
donor machine is below some threshold. But why are we giving the donor
machine all the control?
In this talk, we will consider these and other fundamental questions
in system design and look at how new research in analytical
performance modeling helps us overturn some age-old beliefs.