-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](group commit) fix repaly wal check label status #38883
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
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 41220 ms |
TPC-DS: Total hot run time: 168565 ms |
ClickBench: Total hot run time: 29.68 s |
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
TPC-H: Total hot run time: 41510 ms |
TPC-DS: Total hot run time: 168462 ms |
ClickBench: Total hot run time: 29.84 s |
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. |
When replay wal, it firstly abort the txn with the label but does not check the abort result. And when begin txn of replay, if FE returns `LabelAlreadyUsedException`, it consider the load is success in previous group commit load or repaly wal, and delete this wal directly. But `LabelAlreadyUsedException` means there is a txn with this label, the txn may be in `PREPARE / RUNNING / COMMITTED / VISIBLE` status(the abort txn in first step may fail), so replay wal should check both `LabelAlreadyUsedException` and txn status is `COMMITTED / VISIBLE`. This pr also add a case for replay wal with schema change.
## Proposed changes When replay wal, it firstly abort the txn with the label but does not check the abort result. And when begin txn of replay, if FE returns `LabelAlreadyUsedException`, it consider the load is success in previous group commit load or repaly wal, and delete this wal directly. But `LabelAlreadyUsedException` means there is a txn with this label, the txn may be in `PREPARE / RUNNING / COMMITTED / VISIBLE` status(the abort txn in first step may fail), so replay wal should check both `LabelAlreadyUsedException` and txn status is `COMMITTED / VISIBLE`. This pr also add a case for replay wal with schema change.
## Proposed changes When replay wal, it firstly abort the txn with the label but does not check the abort result. And when begin txn of replay, if FE returns `LabelAlreadyUsedException`, it consider the load is success in previous group commit load or repaly wal, and delete this wal directly. But `LabelAlreadyUsedException` means there is a txn with this label, the txn may be in `PREPARE / RUNNING / COMMITTED / VISIBLE` status(the abort txn in first step may fail), so replay wal should check both `LabelAlreadyUsedException` and txn status is `COMMITTED / VISIBLE`. This pr also add a case for replay wal with schema change.
Proposed changes
When replay wal, it firstly abort the txn with the label but does not check the abort result.
And when begin txn of replay, if FE returns
LabelAlreadyUsedException, it consider the load is success in previous group commit load or repaly wal, and delete this wal directly.But
LabelAlreadyUsedExceptionmeans there is a txn with this label, the txn may be inPREPARE / RUNNING / COMMITTED / VISIBLEstatus(the abort txn in first step may fail), so replay wal should check bothLabelAlreadyUsedExceptionand txn status isCOMMITTED / VISIBLE.This pr also add a case for replay wal with schema change.