What is Hapi?
Hapi is a proof of concept for a relatively simple idea, related to (maybe even the same as, I'm not sure) congestion collapse. The idea is that in queuing systems, one only has to get barely over capacity to have a sustained outage, even if load subsequently falls dramatically. If there's already equivalent work out there, I apologize for not citing it. I tried to find something like this and couldn't. Seeing the gap, and not having taken the time to more than trivially understand the surrounding literature, I decided to demonstrate to myself at least the possibility of the correctness of the idea. Please inform me of any related works, and I will gladly list them here.
pip install -r requirements.txt
sh run_sim.sh
Somewhat detailed logs will be output to simulation_output
.
simulation.py
is a rough proof of concept that simulates a queueing system:
- Warming up (with no or trivial numbers of failed requests).
- Running at steady state (again, almost no failed requests).
- Bumping to a slightly higher rate (all requests fail).
- Dropping to a lower rate than the previous steady state, yet all requests still fail.
I hope to demonstrate this against real world software, to prove to myself and others whether this concept applies to systems like web servers.
Please, create an issue, email me at [email protected], or get me at @tehgeekmeister. I'd love to hear why my simulation is too simplistic, or anything else related to this.
MIT. Please submit pull requests!