-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Fix](merge-on-write) Correct the alignment process when the existing rows with same key has marked delete sign #24877
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](merge-on-write) Correct the alignment process when the existing rows with same key has marked delete sign #24877
Conversation
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
aafaf08 to
354b933
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
354b933 to
819937b
Compare
|
run buildall |
|
clang-tidy review says "All clean, LGTM! 👍" |
|
TeamCity be ut coverage result: |
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
zhannngchen
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. |
…isting rows with same key has marked delete sign apache#24877"
… rows with same key has marked delete sign (apache#24877)
…n merge-on-write unique table (#25071) * pick "[Fix](Partial update) Fix wrong position using in segment writer #22782" * pick "[Enhancement](merge-on-write) use delete bitmap to mark delete for rows with delete sign when sequence column doesn't exist #24011" * pick "[Fix](merge-on-write) Correct the alignment process when the existing rows with same key has marked delete sign #24877"
…rows with delete sign (#36210) Issue Number: close #34296 1. When partial update filling in the missing fields, if a load job previously wrote data with a delete sign, it will also read out the data in the column with the delete sign, so that the newly written data will also become invisible 2. This problem was fixed in #24877, but was introduced again in #26721, and was never found because the case was changed to the wrong output in #26721. 3. The fix in #24877 didn't take into account the handling of concurrent conflicts in the publish phase, the current PR adds this part of the handling, and adds the corresponding case.
…rows with delete sign (#36210) Issue Number: close #34296 1. When partial update filling in the missing fields, if a load job previously wrote data with a delete sign, it will also read out the data in the column with the delete sign, so that the newly written data will also become invisible 2. This problem was fixed in #24877, but was introduced again in #26721, and was never found because the case was changed to the wrong output in #26721. 3. The fix in #24877 didn't take into account the handling of concurrent conflicts in the publish phase, the current PR adds this part of the handling, and adds the corresponding case.
…rows with delete sign (apache#36210) Issue Number: close apache#34296 1. When partial update filling in the missing fields, if a load job previously wrote data with a delete sign, it will also read out the data in the column with the delete sign, so that the newly written data will also become invisible 2. This problem was fixed in apache#24877, but was introduced again in apache#26721, and was never found because the case was changed to the wrong output in 3. The fix in apache#24877 didn't take into account the handling of concurrent conflicts in the publish phase, the current PR adds this part of the handling, and adds the corresponding case.
…rows with delete sign (apache#36210) Issue Number: close apache#34296 1. When partial update filling in the missing fields, if a load job previously wrote data with a delete sign, it will also read out the data in the column with the delete sign, so that the newly written data will also become invisible 2. This problem was fixed in apache#24877, but was introduced again in apache#26721, and was never found because the case was changed to the wrong output in 3. The fix in apache#24877 didn't take into account the handling of concurrent conflicts in the publish phase, the current PR adds this part of the handling, and adds the corresponding case.
Proposed changes
When we insert a row with delete sign marked, it will not mark itself on the delete bitmap if the table has sequence column(see #24011). So if we delete a row using delete sign and then insert a row with same keys using partial update, it will wrongly fill the values in in the unmentioned columns in which the delete sign column will be filled with 1 and the row that should have been inserted will be deleted. So in this occasion we must check the delete sign column to check that if a row really exists in the table.
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...