-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](warmup) ensure warmup only triggers if tablet exists on target backend #53852
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
[fix](warmup) ensure warmup only triggers if tablet exists on target backend #53852
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
…et exists on target backend apache#53852 (apache#53851)" This reverts commit 80f890b.
729ba78 to
87b39be
Compare
|
run buildall |
TPC-H: Total hot run time: 33746 ms |
TPC-DS: Total hot run time: 159513 ms |
ClickBench: Total hot run time: 33.25 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
dataroaring
left a comment
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.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
…backend (#53852) (#53850) ### What problem does this PR solve? Cherry-pick: #53852 Problem Summary: For event-driven warmup jobs, ensure warmup only triggers if tablet exists on the target backend. Because the source BE will cache the tablet location for a short time, after rebalancing, the old target BE will still receive warm up requests during that time. This PR prevents the old target BE to re-fetch the tablet cache when it no longer holds the tablet. For the new target BE, it will take a different path (`warm_up_cache_async`) to do the warm up. ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
…error #53852 (#54445) ### What problem does this PR solve? Related PR: #53852 When warm up rowset on event, if the tablet is not found on the target BE, it will now return an error to the source BE. The source BE will try to refresh the tablet location cache, and retry the warmup with `force` flag. When the `force` flag is set, the target BE will do the warm up regardless of the tablet existence.
…error apache#53852 (apache#54445) Related PR: apache#53852 When warm up rowset on event, if the tablet is not found on the target BE, it will now return an error to the source BE. The source BE will try to refresh the tablet location cache, and retry the warmup with `force` flag. When the `force` flag is set, the target BE will do the warm up regardless of the tablet existence.
### What problem does this PR solve? Related PR: #53852 When warm up rowset on event, if the tablet is not found on the target BE, it will now return an error to the source BE. The source BE will try to refresh the tablet location cache, and retry the warmup with force flag. When the force flag is set, the target BE will do the warm up regardless of the tablet existence. ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [ ] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [ ] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [ ] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
What problem does this PR solve?
Problem Summary:
For event-driven warmup jobs, ensure warmup only triggers if tablet exists on the target backend.
Because the source BE will cache the tablet location for a short time,
after rebalancing, the old target BE will still receive warm up requests during that time.
This PR prevents the old target BE to re-fetch the tablet cache when it no longer holds the tablet.
For the new target BE, it will take a different path (warm_up_cache_async) to do the warm up.
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)