Demand Control

Learn about how a system can crash, socket limitation under heavy requests, ethernet, and long responses leading users to retry.

System crash

In the old days of mainframes in glass houses, we could predict what the workload looked like from day to day. Operators would measure how many MIPS (millions of instructions per second) a given job needed. Those days are long gone. Most of our services are either directly or indirectly exposed to the entire world’s population.

Our daily reality is this: the world can crush our systems at any time. There’s no natural protection. We have to build it. There are two basic strategies: either refuse work or scale out. For the moment, we’ll consider when, where, and how to refuse work.

How systems fail

Every failing system starts with a queue backing up somewhere. When thinking about request/reply workload, we need ...