Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce backpressure when rate limits are hit #993

Open
ellisjoe opened this issue Mar 20, 2019 · 3 comments
Open

Introduce backpressure when rate limits are hit #993

ellisjoe opened this issue Mar 20, 2019 · 3 comments

Comments

@ellisjoe
Copy link
Contributor

What happened?

Currently a client is able to enqueue an unbounded number of requests into the Dispatcher.

What did you want to happen?

One a certain number of requests are enqueued, we should either start throwing 429s back out of the client, or start blocking the threads enqueueing requests to introduce some form of backpressure upstream.

@j-baker
Copy link
Contributor

j-baker commented Mar 20, 2019

I don't believe the client is able to do this without the concurrency limit rising to a higher number than the per-host limit. If you'd like, we should set a 'max concurrency' on the concurrency limiter, which at least avoids the noisy neighbour states?

@ellisjoe
Copy link
Contributor Author

This happens when the incoming request rate exceeds the concurrency limit, regardless of where the limit is in relation to the per-host limit. This won't prevent the concurrency limit from exceeding the per-host limit, but it'll push back on clients when that does happen.

@stale
Copy link

stale bot commented Sep 23, 2019

This issue has been automatically marked as stale because it has not been touched in the last 60 days. Please comment if you'd like to keep it open, otherwise it'll be closed in 7 days time.

@stale stale bot added the stale label Sep 23, 2019
@iamdanfox iamdanfox removed the stale label Sep 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants