Uh oh!
There was an error while loading. Please reload this page.
[Fix](flexible partial update) Fix some problems in flexible partial update - #41701
Conversation
doris-robot
commented
Oct 11, 2024
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
bobhan1
commented
Oct 11, 2024
run buildall |
Uh oh!
There was an error while loading. Please reload this page.
doris-robot
commented
Oct 11, 2024
TeamCity be ut coverage result: |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
24069a4 to
378ef2fCompareUh oh!
There was an error while loading. Please reload this page.
d21f1b1 to
d2e1b4cCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6428fa3 to
f177418Comparebobhan1
commented
Oct 12, 2024
run buildall |
doris-robot
commented
Oct 12, 2024
TeamCity be ut coverage result: |
Uh oh!
There was an error while loading. Please reload this page.
bobhan1
commented
Oct 12, 2024
run buildall |
doris-robot
commented
Oct 12, 2024
TPC-H: Total hot run time: 40999 ms |
doris-robot
commented
Oct 12, 2024
TeamCity be ut coverage result: |
doris-robot
commented
Oct 12, 2024
TPC-DS: Total hot run time: 192400 ms |
doris-robot
commented
Oct 12, 2024
ClickBench: Total hot run time: 32.6 s |
79fe26c to
02cb8afCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
bobhan1
commented
Oct 12, 2024
run buildall |
doris-robot
commented
Oct 12, 2024
TeamCity be ut coverage result: |
doris-robot
commented
Oct 12, 2024
TPC-H: Total hot run time: 40756 ms |
doris-robot
commented
Oct 12, 2024
TPC-DS: Total hot run time: 192006 ms |
doris-robot
commented
Oct 12, 2024
ClickBench: Total hot run time: 33.62 s |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
8a8bca5 to
a5f0e6dComparebobhan1
commented
Jul 11, 2025
run buildall |
hello-stephen
commented
Jul 11, 2025
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
doris-robot
commented
Jul 11, 2025
TPC-H: Total hot run time: 33716 ms |
doris-robot
commented
Jul 11, 2025
TPC-DS: Total hot run time: 186267 ms |
doris-robot
commented
Jul 11, 2025
ClickBench: Total hot run time: 30.31 s |
hello-stephen
commented
Jul 11, 2025
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
bobhan1
commented
Jul 14, 2025
run cloud_p0 |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
…update (apache#41701) 1. Fix incorrect result when there are insert after delete for same key in one load. In flexible partial update, if there is an insert after a delete on the same key in one batch, the final result will be always delete that row in table, which is incorrect. The reason is that when doing aggregation for rows with same keys in memtable, we treat delete sign column as an ordinary column. So if there is a row with delete sign in that batch, the final aggregated row will always have a delete sign and any insert on the same key after it will be lost. In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it. 2. fix flexible partial update don't use row store column to read data 3. Fix flexible partial update incorrect read index when resolving conflict in publish phase 4. add some default value cases and fix on update current timestamp 5. fix publish phase alignment problem when table has sequence column and the rowset to read has multi segments. 6. add some publish alignment case when table has sequence column 7. ~revert apache#25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.~ 8. fix auto-increment column value is wrongly updated when it's not specified. 9. Fix the problem that the value of sequence column may decrease. 10. Only read seq col and seq map col when the previous row is deleted in partial update and flexible partial update when doing alignment. 11. Fix the value of auto-increment column is not consistent between replicas.
…update (apache#41701) 1. Fix incorrect result when there are insert after delete for same key in one load. In flexible partial update, if there is an insert after a delete on the same key in one batch, the final result will be always delete that row in table, which is incorrect. The reason is that when doing aggregation for rows with same keys in memtable, we treat delete sign column as an ordinary column. So if there is a row with delete sign in that batch, the final aggregated row will always have a delete sign and any insert on the same key after it will be lost. In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it. 2. fix flexible partial update don't use row store column to read data 3. Fix flexible partial update incorrect read index when resolving conflict in publish phase 4. add some default value cases and fix on update current timestamp 5. fix publish phase alignment problem when table has sequence column and the rowset to read has multi segments. 6. add some publish alignment case when table has sequence column 7. ~revert apache#25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.~ 8. fix auto-increment column value is wrongly updated when it's not specified. 9. Fix the problem that the value of sequence column may decrease. 10. Only read seq col and seq map col when the previous row is deleted in partial update and flexible partial update when doing alignment. 11. Fix the value of auto-increment column is not consistent between replicas.
…update (apache#41701) 1. Fix incorrect result when there are insert after delete for same key in one load. In flexible partial update, if there is an insert after a delete on the same key in one batch, the final result will be always delete that row in table, which is incorrect. The reason is that when doing aggregation for rows with same keys in memtable, we treat delete sign column as an ordinary column. So if there is a row with delete sign in that batch, the final aggregated row will always have a delete sign and any insert on the same key after it will be lost. In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it. 2. fix flexible partial update don't use row store column to read data 3. Fix flexible partial update incorrect read index when resolving conflict in publish phase 4. add some default value cases and fix on update current timestamp 5. fix publish phase alignment problem when table has sequence column and the rowset to read has multi segments. 6. add some publish alignment case when table has sequence column 7. ~revert apache#25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.~ 8. fix auto-increment column value is wrongly updated when it's not specified. 9. Fix the problem that the value of sequence column may decrease. 10. Only read seq col and seq map col when the previous row is deleted in partial update and flexible partial update when doing alignment. 11. Fix the value of auto-increment column is not consistent between replicas.
…update (apache#41701) 1. Fix incorrect result when there are insert after delete for same key in one load. In flexible partial update, if there is an insert after a delete on the same key in one batch, the final result will be always delete that row in table, which is incorrect. The reason is that when doing aggregation for rows with same keys in memtable, we treat delete sign column as an ordinary column. So if there is a row with delete sign in that batch, the final aggregated row will always have a delete sign and any insert on the same key after it will be lost. In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it. 2. fix flexible partial update don't use row store column to read data 3. Fix flexible partial update incorrect read index when resolving conflict in publish phase 4. add some default value cases and fix on update current timestamp 5. fix publish phase alignment problem when table has sequence column and the rowset to read has multi segments. 6. add some publish alignment case when table has sequence column 7. ~revert apache#25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.~ 8. fix auto-increment column value is wrongly updated when it's not specified. 9. Fix the problem that the value of sequence column may decrease. 10. Only read seq col and seq map col when the previous row is deleted in partial update and flexible partial update when doing alignment. 11. Fix the value of auto-increment column is not consistent between replicas.
…update (apache#41701) 1. Fix incorrect result when there are insert after delete for same key in one load. In flexible partial update, if there is an insert after a delete on the same key in one batch, the final result will be always delete that row in table, which is incorrect. The reason is that when doing aggregation for rows with same keys in memtable, we treat delete sign column as an ordinary column. So if there is a row with delete sign in that batch, the final aggregated row will always have a delete sign and any insert on the same key after it will be lost. In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it. 2. fix flexible partial update don't use row store column to read data 3. Fix flexible partial update incorrect read index when resolving conflict in publish phase 4. add some default value cases and fix on update current timestamp 5. fix publish phase alignment problem when table has sequence column and the rowset to read has multi segments. 6. add some publish alignment case when table has sequence column 7. ~revert apache#25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.~ 8. fix auto-increment column value is wrongly updated when it's not specified. 9. Fix the problem that the value of sequence column may decrease. 10. Only read seq col and seq map col when the previous row is deleted in partial update and flexible partial update when doing alignment. 11. Fix the value of auto-increment column is not consistent between replicas.
…_update` (#53765) ### What problem does this PR solve? introduced in #41701 When doing alignment for partial update in publish phase, `read_index_old` may be not continuous if some rows in current block has delete signs. Thus `old_block_delete_signs[read_index_old[idx]]` may overflow when all rows in current block have delete signs because `old_block_delete_signs` is empty.
In the above situation, we should keep those rows and don't merge them when doing aggregation in memtable. When flush the memtable to segment, we should first apply the semantic of delete if exists and then insert the row after it.
revert [Fix](partial-update) Correct the alignment process when the table has sequence column and add cases #25346, we use the sequence value in flush phase as its final value and will not do alignment in publish phase if the partial update load doesn't specified sequence column.