Uh oh!
There was an error while loading. Please reload this page.
[enhancement](recover) support skipping missing version in select by session variable - #25654
Conversation
xy720
commented
Oct 19, 2023
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
xy720
commented
Oct 19, 2023
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
doris-robot
commented
Oct 19, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
doris-robot
commented
Oct 19, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
xy720
commented
Oct 20, 2023
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
doris-robot
commented
Oct 20, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Oct 20, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
xy720
commented
Oct 20, 2023
run p0 |
dataroaring
commented
Oct 20, 2023
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.
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.
xy720
commented
Oct 20, 2023
Ok, I understand. I will use a session variable to make this behavior only effect one session.
|
6a64c9d to
5dc000dCompareclang-tidy review says "All clean, LGTM! 👍" |
xy720
commented
Oct 21, 2023
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
doris-robot
commented
Oct 21, 2023
TeamCity be ut coverage result: |
xy720
commented
Oct 22, 2023
run p0 |
df85575 to
578f008Comparexy720
commented
Oct 22, 2023
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
doris-robot
commented
Oct 22, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Oct 22, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
xy720
commented
Oct 22, 2023
run p0 |
1 similar comment
xy720
commented
Oct 22, 2023
run p0 |
de72e15 to
64d33b8Comparexy720
commented
Nov 1, 2023
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! 👍" |
xy720
commented
Nov 1, 2023
run buildall |
doris-robot
commented
Nov 1, 2023
TeamCity be ut coverage result: |
doris-robot
commented
Nov 1, 2023
(From new machine)TeamCity pipeline, clickbench performance test result: |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
xy720
commented
Nov 1, 2023
run feut |
xy720
commented
Nov 1, 2023
run pipelinex_p0 |
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...