[release-18.0] Throttler: Use tmclient pool for CheckThrottler tabletmanager RPC#15087
Merged
frouioui merged 1 commit intovitessio:release-18.0from Jan 30, 2024
Merged
Conversation
…tessio#14979) Signed-off-by: Matt Lord <mattalord@gmail.com>
Contributor
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
|
5 tasks
mattlord
approved these changes
Jan 30, 2024
Member
|
Just FYI, I'm pretty sure that you can add the backport labels after merge now and the backport PRs will get auto created. |
Member
this is not implemented yet :'( |
frouioui
approved these changes
Jan 30, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
release-18.0 backport of #14979
Description
When the tablet throttler is enabled in a keyspace, the tablets within each shard make very frequent
CheckThrottlerRPC calls between themselves after moving from http to gRPC in #13514.The initial implementation created a new gRPC connection and dialed the other tablet on each
CheckThrottlerRPC call. Because this RPC is made so frequently, however, this was not practical from a performance perspective (CPU and network overhead along with feature/input latency).In this PR we instead leverage the existing tabletmanagerclient pooling, each tabletmanagerclient having its own gRPC connection, so that we re-use existing connections and avoid the overhead of constantly creating and destroying them on each RPC which caused a lot of tcp connection churn and related overhead.
Related Issue(s)
Checklist