-
-
Notifications
You must be signed in to change notification settings - Fork 119
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
Bad tail latency under high contention #243
Comments
What is your goal with this issue? Why not just use deadpool? How self-contained is your test program? IIRC deadpool uses a |
I created the issue to seek guidance about the potential problem, so I can try to submit a PR to improve it. As for using deadpool, for my use case bb8 is much better as it maintains a minimum number of connections in the pool and checks the connection health before adding it back to the pool, deadpool does not support those features. |
Ah, cool. So do you feel this is enough guidance? Feel free to ask more questions! |
I think that's enough, thank you so much! I'll play around with it this weekend and see what I can get. |
I did a proof-of-concept to validate your assumption about the semaphore and you're correct, I did the following change:
With that, those are the numbers I got:
Do you see any concerns or problems with this solution? |
Glad to see it worked out, nice work! I think we should probably replace the |
I've been doing some load testing with the bb8 and deadpool, and I've observed that under high concurrent load (e.g., 1000 concurrent Tokio tasks) with a limited number of connections (50 connections in my tests), bb8 seems to be handling the connections poorly in terms of distribution, some tasks are experiencing significant delays when trying to acquire a connection from the pool, while deadpool has a more consistent, well-behaved latency.
Here are the measured connection acquisition times for both pools in this scenario:
bb8
deadpool
The text was updated successfully, but these errors were encountered: