-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
WIP: TabletManagerClient
real pool dialer
#15541
Conversation
Signed-off-by: Manan Gupta <[email protected]>
Signed-off-by: Manan Gupta <[email protected]>
…t shared. A real pool Signed-off-by: Shlomi Noach <[email protected]>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
Tests
Documentation
New flags
If a workflow is added or modified:
Backward compatibility
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #15541 +/- ##
==========================================
+ Coverage 65.69% 65.73% +0.04%
==========================================
Files 1564 1560 -4
Lines 194588 194631 +43
==========================================
+ Hits 127832 127943 +111
+ Misses 66756 66688 -68 ☔ View full report in Codecov by Sentry. |
This work is postponed to a later stage. Meanwhile #15562 should fix the issue. |
Description
An alternative to #15520, using same tests, but with different solution.
The
TabletManagerClient
pool dialer is not a real pool. It holdsn
clients, and shares them arbitrarily among potentially unlimited users. This means a single client (connection) can be held concurrently by many users. Not one user has the ownership toClose()
a client on error, because other users could be using that connection at that same time.,This PR addresses specifically
CheckThrottler
andFullStatus
functions, which are invoked mroe frequently than others, and creates a new, actual pool implementation. We don't want to impact otherwise existing logic forExecute*Fetch*
functions, which are also users ofdialPool
. Hence we create a 2nd pool mechanism, to be used specifically by the aforementioned two functions.Related Issue(s)
poolDialer
#15563Checklist
Deployment Notes