-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[enhancement](recover) support skipping missing version in select by session variable #25654
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
Conversation
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
run p0 |
|
We'd better use a session variable to control behavior of query. Recovery is different than query, recovery is a action without lost, however, if query ignores some missing versions on a replica and another replica has all versions, then query returns a wrong result. If query may return a wrong result, it should be controlled per query and users should know that. |
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.
We'd better use a session variable to control behavior of query. Recovery is different than query, recovery is a action without lost, however, if query ignores some missing versions on a replica and another replica has all versions, then query returns a wrong result. If query may return a wrong result, it should be controlled per query and users should know that.
|
Ok, I understand. I will use a session variable to make this behavior only effect one session.
|
6a64c9d to
5dc000d
Compare
|
clang-tidy review says "All clean, LGTM! 👍" |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
|
run p0 |
df85575 to
578f008
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
|
run p0 |
1 similar comment
|
run p0 |
de72e15 to
64d33b8
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
|
clang-tidy review says "All clean, LGTM! 👍" |
|
run buildall |
|
TeamCity be ut coverage result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
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. |
|
run feut |
|
run pipelinex_p0 |
lide-reed
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
Proposed changes
Recently, in version 1.2.7, we encountered a situation where all replicas of tablets in table are having missing versions. In this case, FE is unable to recover these tablets, and the table is unable to select.
In pr #18986, I noticed that we have support config
recover_with_skip_missing_versionto ignore the visible version in FE partition.This config only work when the replica version is behind partition version. But if the replica on be has a version missing, it actually does not skip any missing versions on be.
For example,
1、if the replica versions in BE is {1-100, 101, 102, 103}, the partition visible version is 100,
recover_with_skip_missing_version=ignore_versionis working well.2、if the replica versions in BE is {1-100, 103}, the partition visible version is 100,
recover_with_skip_missing_version=ignore_versionis not working.This commit support session variable
skip_missing_versionto control the query behavior.If
skip_missing_versionis set to true, the query will always try to select the one with the highest lastSuccessVersion among all surviving BE replicas.If
skip_missing_versionis set to true, the query will always skip the missing rowsets in BE and only return the data from existing rowsets.Further comments
If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...