concurrency-limits icon indicating copy to clipboard operation
concurrency-limits copied to clipboard

Discuss abount Gradient2Limit in stable timeout situtation

Open happyomg opened this issue 6 years ago • 0 comments

hi, i want to discuss about Gradient2Limit in stable timeout situtation.

I use Gradient2Limit at consumer side (to control the consumer's rate to avoid bursting the provider side)

First, what is stable timeout situtation ?

In my situtation , every consumer has set a client timeout , like 5000ms. the stable timeout situtation is :

1. provider is bursted by other consumer which doesn't hava any rate limit.
2. and the consumer which i use Gradient2Limit always received the same timeout rtt `5000ms`, i call it as a `stable timeout` situtation

Once my consumer which used Gradient2Limit step in stable timeout situtation, the Gradient2Limit will not take effect.

It because Gradient2Limit only care about the volatility of rtt . if rtt has zero volatility, such like stable timeout situtation, Gradient2Limit will grow its limit output until Max_Limit.

So, how could i deal with this situtation? can we make Gradient2Limit to support this situtation?

Now i consider using BBR algorithm to implement a new Limit to resolve it.

Anyone has met the same situtation? how do you deal with it?

happyomg avatar Jul 13 '19 14:07 happyomg