Netflix / concurrency-limits

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logic behind dropping AIMD current limit by half when reaching maximum

IgorPerikov opened this issue · comments

if (currentLimit >= maxLimit) {
currentLimit = currentLimit / 2;
}

May anyone describe why is that needed? It looks like if congestion doesn't occur and current limit reached its maximum, it's because maxlimit was pessimistically low, so instead of keep working successfully at full steam, limits will be halved and so the incoming traffic (and redistributing traffic from current instance will bring it to others and potentially hit maximum there and be halved again), which otherwise could've been processed correctly

I have exactly the same question.
Also in low response times I'm having spikes in the value of N due to GC pauses.
https://stackoverflow.com/questions/59311752/how-to-limit-concurrency-in-a-webapp-when-gc-pauses-last-more-than-the-average-r#

commented

Can this issue be closed as implemented by #174 ?