-
Notifications
You must be signed in to change notification settings - Fork 3.7k
branch-3.1: [opt](partial update) use a separate config to control the behavior of newly inserted rows in partial update (#41232) #52998
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
branch-3.1: [opt](partial update) use a separate config to control the behavior of newly inserted rows in partial update (#41232) #52998
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
33b587b to
2963d3a
Compare
|
run buildall |
…xible partial update (apache#41950) Considering that `SegmentWriter` will be removed in the near future, we stop to support flexible partial update on `SegmentWriter` to reduce maintenance costs
…f newly inserted rows in partial update (apache#41232) Currently, Doris use strict mode to decide if newly inserted rows should be appended or report an error in partial update, which is hard to use. This PR add a new session variable and load property `partial_update_new_key_behavior` to control the behavior of newly inserted rows in partial update. `partial_update_new_key_behavior` has ~three~ two options: - `APPEND`: append the newly inserted rows - ~`IGNORE`: delete the newly inserted rows silently(will not be taken into filtered rows)~ - `ERROR`: report error if meet newly inserted rows, and the error msg will contains one row's keys which is not in table. --- The reason for not supporting `IGNORE` mode: To support `IGNORE` mode, we need to add delete sign for newly inserted rows in partial update to delete them rather than use delete bitmap mark to delete them because compaction will not use delete bitmap when reading data. Also, we need to record the rows whose delete sign is added by us in this situation for resolving conflicts in publish phase to avoid wrongly delete the rows if there are another concurrent load insert some of these rows successfully. This increases code complexity and is error-prone. Doc: apache/doris-website#2472
2963d3a to
eaf5b9d
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
211cb82 to
01c1025
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run beut |
TPC-H: Total hot run time: 39788 ms |
TPC-DS: Total hot run time: 197271 ms |
ClickBench: Total hot run time: 31.39 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
pick #41950 and #41232