-
Notifications
You must be signed in to change notification settings - Fork 725
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
client: Support both sync and async interface for tsoStream, to avoid potential performane regression when concurrent RPC is not enabled #8636
base: master
Are you sure you want to change the base?
Conversation
… potential performane regression when concurrent RPC is not enabled Signed-off-by: MyonKeminta <[email protected]>
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #8636 +/- ##
==========================================
+ Coverage 77.57% 77.66% +0.09%
==========================================
Files 474 474
Lines 62033 62125 +92
==========================================
+ Hits 48122 48251 +129
+ Misses 10355 10313 -42
- Partials 3556 3561 +5
Flags with carried forward coverage won't be shown. Click here to find out more. |
Signed-off-by: MyonKeminta <[email protected]>
Signed-off-by: MyonKeminta <[email protected]>
c437f8f
to
16b59c7
Compare
[FORMAT CHECKER NOTIFICATION] Notice: To remove the 📖 For more info, you can check the "Linking issues" section in the CONTRIBUTING.md. |
@MyonKeminta: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
@@ -328,10 +328,10 @@ tsoBatchLoop: | |||
case td.tsDeadlineCh <- dl: | |||
} | |||
// processRequests guarantees that the collected requests could be finished properly. | |||
err = td.processRequests(stream, dc, batchController, done) | |||
tbcConsumed, err := td.processRequests(stream, dc, batchController, done, td.useAsyncStream()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This means that if we don't turn on the newly introduced feature, it will always work in a synchronized way, do I understand correctly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. But let's hold this PR for now as the performance regression is currently very likely to be a misreport due to the unstable test environment.
PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What problem does this PR solve?
Issue Number:
What is changed and how does it work?
The issue pingcap/tidb#56103 reports a performance regression introduced by PR pingcap/tidb#56093 , which introduces #8483 to TiDB.
It's reasonable that this PR does have risk to introduce performance regression in non-current mode (which would be default after finishing #8432). However:
So I think the performance regression report looks quite doubtful.
Anyway, I still prepared this PR: the
tsoStream
provides both sync and async interface. When concurrent RPC is not enabled, the sync interface will be used, making the logic the same as that before merging #8483 .Check List
Tests
Code changes
Side effects
Related changes
pingcap/docs
/pingcap/docs-cn
:pingcap/tiup
:Release note