andrewjstone/rabble

Support for backpressure

Opened this issue · 0 comments

Detect overload via min latency on the executor channel. When the min latency increases past a bound, stop processing new requests or slow the acceptance rate. This will appear as slow responses to some clients, but does not require a change to the client api. This is similar to the tcp API model. The throttling is hidden from the caller, but latency may spike. When the system comes out of overload normal operation resumes.

To know when the system is overloaded, how long it was overloaded, and previous overloads, detailed stats should be kept and be made available via an admin api.