[Cake] A few puzzling Cake results
chromatix99 at gmail.com
Thu Apr 19 04:11:33 EDT 2018
> This is why I think that any fix that tries to solve this problem in the queueing system should be avoided. It does not solve the real problem (overload) and introduces latency.
Most people, myself included, prefer systems that degrade gracefully instead of simply failing or rejecting new loads. Systems that exhibit the latter behaviours tend to be open to DoS attacks, which are obviously bad. Or users obsessively retry the failed requests until they succeed, increasing total load for the same goodput and inferior perceived QoS. Or ignorant application developers try to work around a perceived-unreliable system by spamming it with connections so that *their* traffic ends up getting through somehow.
By designing a system which exhibits engineering elegance where practical, and graceful degradation otherwise, I try to encourage others to do the Right Thing by providing suitable incentives in the system's behaviour. The conventional way (of just throwing up one's hands when load exceeds capacity) has already been tried, extensively, and obviously doesn't work. Cake does better.
Since Pacific islands are topical, perhaps look up the story of the California Clipper, which had to trek from NZ to NY "the long way round" after Japan entered the war. To do so, the crew had to push the aircraft's endurance beyond the normal limits several times, and run it on the 90-octane fuel that was available in India and Africa, rather than the 100-octane fuel that the engines had been designed for. Eventually part of the exhaust fell off one engine, and they had no spare - but the engine kept working, so they just posted a lookout to account for the increased fire hazard, and kept on flying. They could do that because it was a well-designed aircraft that had some tolerance for hard running, and comparatively graceful failure modes (as you'd hope an airliner would).
- Jonathan Morton
More information about the Cake