-
Notifications
You must be signed in to change notification settings - Fork 28
Description
Today, fair adds and subtracts a constant amount of probability to all failed/passed requests - an approach consistent with SFB.
Unlike SFB though, we are not dealing with TCP's rules. We are in the messy land of HTTP where everything is optional. When a client starts getting throttled, they should be sent a retry-after header which they should respect and back off. Sadly, many clients don't and rather keep hammering the server.
In this situation, and if the resource is not fully exhausted but rather just available at a lower throughput, we may see that a heavy-hitter is never truly shut down as it'll have a higher probability of seeing success as well. If we make it too easy to get to 1, we may over-punish.
What might help is to make the probability adjustment not just linear. There may be a potential to use a different algorithm that makes it a function of time as well.
This is largely an exploratory task at this point.