-
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
vstreamer: support 'useThrottler' so that clients can choose whther they at all want to involve the throttler #13187
Conversation
…r when they've been 'check'ed Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
…hey at all want to involve the throttler. Some lightweight clients, such as the schema tracker or the binlog watcher, or messager, do not need the throttler, and since some of these clients are _always on_, we also do not _want_ them to continuously approach the throttler. One side effect of always engaging with the throttler is the infinite renewal of on-demand heartbeats Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
If a new flag is being introduced:
If a workflow is added or modified:
Bug fixes
Non-trivial changes
New/Existing features
Backward compatibility
|
I could also go with a different approach: give each client a name, e.g. |
I'm actually leaning towards that approach. |
Closing in favor of #13195 |
Description
An extension to #13177. This PR includes everything in #13177 and then adds more logic. I intentionally split the two apart so we can discuss the two changes separately.
#13177 says: "if the replica tablet's throttler is checked, then as result the primary tablet's throttler should request more heartbeats".
However, there are some clients that:
The particular clients are these three members of
tabletserver
:For now, we consider all other clients as "need to use the throttler".
We add a flag
useThrottler
inVStream()
. The callers ofVStream()
now indicate whether they want to use the throttler or not.The reason this is done this way is because
tabletserver
'svstream
engine is a single entity shared among multiple clients. It uses a single throttler client.Related Issue(s)
Checklist
Deployment Notes