-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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](bdb) Write OP_TIMESTAMP operation until it successed #33967
Conversation
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
run buildall |
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.
If write occure InsufficientExeption or RollbackException , Is unlimted loop suitable?
It will exit by transferring to a follower. |
For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
6d07c52
to
9de46cd
Compare
run buildall |
TPC-H: Total hot run time: 38640 ms
|
TPC-DS: Total hot run time: 185714 ms
|
ClickBench: Total hot run time: 29.64 s
|
PR approved by anyone and no changes requested. |
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. |
) For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
…34061) For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
) (apache#34061) For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal id and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS. So for OP_TIMESTAMP operation, try to write until it succeeds.
Proposed changes
Issue Number: close #xxx
For now, it will reset the next journal id and return if the OP_TIMESTAMP operation writes failed. Because BDBJE will replicate the committed txns (only persisted in BDB log, but not replicated to other members) to FOLLOWERs after the connection resumed, directly resetting the next journal ID and returning will cause subsequent txn written to the same journal ID not to be replayed by the FOLLOWERS.
So for OP_TIMESTAMP operation, instead of returning early, try to write until it succeeds.
Further comments
If this is a relatively large or complex change, kick off the discussion at [email protected] by explaining why you chose the solution you did and what alternatives you considered, etc...