Uh oh!
There was an error while loading. Please reload this page.
[fix](regression) Use single bucket for unique key delete compaction cases - #65352
Conversation
hello-stephen
commented
Jul 8, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
shuke987
commented
Jul 8, 2026
run buildall |
shuke987
commented
Jul 8, 2026
run buildall |
hello-stephen
commented
Jul 8, 2026
/review |
PR approved by anyone and no changes requested. |
There was a problem hiding this comment.
Automated review summary for PR #65352.
I reviewed the final PR-scoped patch from GitHub: it changes only two compaction regression suites and adds BUCKETS 1 to each unique-key-with-delete test table. I did not find a substantiated issue to raise as an inline comment.
Critical checkpoint conclusions:
- Goal and proof: The PR goal is a regression-test deflake for the unique-key delete compaction row-count check. Pinning the table layout to one bucket addresses the cross-tablet physical row-count variability while preserving the strict
rowCount < 8 * replicaNumassertion and the final ordered result checks. - Scope: The change is minimal and test-only: two DDL additions, no expected-output or production-code changes.
- Concurrency/lifecycle: No new runtime concurrency or lifecycle behavior is introduced. The existing helper still triggers/waits compaction per tablet.
- Config/session/compatibility: No new config item, session variable, persisted format, FE/BE protocol, or rolling-upgrade compatibility path is introduced.
- Parallel paths: The non-cluster-key and cluster-key variants are updated consistently.
- Test coverage/results: The changed files are regression tests, the generated
.outfiles remain valid because query output is unchanged and ordered, andgit diff --checkpassed for the PR-scoped changed files. I did not run the regression suite locally because this checkout lacks.worktree_initializedandthirdparty/installed; review validation was static plus GitHub PR metadata/CI state. - Observability, transactions, persistence, data writes, and performance: Not applicable beyond the existing test behavior, because this is a bucket-count pin in regression DDL only.
Subagent conclusions:
optimizer-rewrite: no candidates found; convergence round 1 returnedNO_NEW_VALUABLE_FINDINGS.tests-session-config: no candidates found; convergence round 1 returnedNO_NEW_VALUABLE_FINDINGS.- Existing inline review context was empty, so there were no duplicate threads to suppress.
User focus: No additional user-provided review focus was supplied.
Uh oh!
There was an error while loading. Please reload this page.
… compaction cases (#65671) ### What problem does this PR solve? Problem Summary: pick #65352 to branch-4.1. This keeps the strict `rowCount < 8 * replicaNum` check and fixes the two unique-key-with-delete compaction case tables to a single bucket. The backport diff only adds `BUCKETS 1` to: - `test_compaction_uniq_keys_with_delete.groovy` - `test_compaction_uniq_keys_with_delete_ck.groovy` ### Release note None. Regression case deflake only. ### Check List (For Author) - [x] I have checked the final diff is limited to the regression cases. - [x] I have run `git diff --check origin/branch-4.1..pick-65352-branch-4.1`. ### Check List (For Reviewer who merge this PR) - [ ] Confirm the backport only adds `BUCKETS 1` to the two target cases.
…cases (apache#65352) Set an explicit single bucket for the unique-key-with-delete compaction cases: - `test_compaction_uniq_keys_with_delete.groovy` - `test_compaction_uniq_keys_with_delete_ck.groovy` Both cases keep the original strict `rowCount < 8 * replicaNum` check and the final `qt_select_default3` query result check after cumulative compaction. Cloud P0 build `987265` failed in `compaction.test_compaction_uniq_keys_with_delete.test_compaction_uniq_keys_with_delete`: ```text assert (rowCount < 8 * replicaNum) 8 | 8 1 false ``` The failing build already included the table-level `"disable_auto_compaction" = "true"` change from apache#65211. The build log shows cumulative compaction completed with `[OK]`, but the active rowsets can still contain exactly `8 * replicaNum` physical rows for this unique-key + delete scenario. The default bucket layout lets the same case observe different physical row-count distributions across tablets. This patch fixes the test table to `BUCKETS 1`, so the strict cumulative-compaction row-count assertion is checked under a single-tablet layout instead of depending on cross-tablet physical distribution. - `git diff --check` - Inspected TeamCity build `987265` compressed build log: - table DDL includes `"disable_auto_compaction" = "true"` - cumulative compaction status is `[OK]` - active row-count sum is exactly `8`, matching `8 * replicaNum` - Checked the final PR diff against the PR merge base; it only adds `BUCKETS 1` to the two case tables. Buildall requested after the bucket-only update. No user-facing behavior change. Regression case deflake only. (cherry picked from commit 0af6eac)
…cases (apache#65352) Set an explicit single bucket for the unique-key-with-delete compaction cases: - `test_compaction_uniq_keys_with_delete.groovy` - `test_compaction_uniq_keys_with_delete_ck.groovy` Both cases keep the original strict `rowCount < 8 * replicaNum` check and the final `qt_select_default3` query result check after cumulative compaction. Cloud P0 build `987265` failed in `compaction.test_compaction_uniq_keys_with_delete.test_compaction_uniq_keys_with_delete`: ```text assert (rowCount < 8 * replicaNum) 8 | 8 1 false ``` The failing build already included the table-level `"disable_auto_compaction" = "true"` change from apache#65211. The build log shows cumulative compaction completed with `[OK]`, but the active rowsets can still contain exactly `8 * replicaNum` physical rows for this unique-key + delete scenario. The default bucket layout lets the same case observe different physical row-count distributions across tablets. This patch fixes the test table to `BUCKETS 1`, so the strict cumulative-compaction row-count assertion is checked under a single-tablet layout instead of depending on cross-tablet physical distribution. - `git diff --check` - Inspected TeamCity build `987265` compressed build log: - table DDL includes `"disable_auto_compaction" = "true"` - cumulative compaction status is `[OK]` - active row-count sum is exactly `8`, matching `8 * replicaNum` - Checked the final PR diff against the PR merge base; it only adds `BUCKETS 1` to the two case tables. Buildall requested after the bucket-only update. No user-facing behavior change. Regression case deflake only. (cherry picked from commit 0af6eac)
Proposed changes
Set an explicit single bucket for the unique-key-with-delete compaction cases:
test_compaction_uniq_keys_with_delete.groovytest_compaction_uniq_keys_with_delete_ck.groovyBoth cases keep the original strict
rowCount < 8 * replicaNumcheck and the finalqt_select_default3query result check after cumulative compaction.Why
Cloud P0 build
987265failed incompaction.test_compaction_uniq_keys_with_delete.test_compaction_uniq_keys_with_delete:The failing build already included the table-level
"disable_auto_compaction" = "true"change from #65211. The build log shows cumulative compaction completed with[OK], but the active rowsets can still contain exactly8 * replicaNumphysical rows for this unique-key + delete scenario.The default bucket layout lets the same case observe different physical row-count distributions across tablets. This patch fixes the test table to
BUCKETS 1, so the strict cumulative-compaction row-count assertion is checked under a single-tablet layout instead of depending on cross-tablet physical distribution.Validation
git diff --check987265compressed build log:"disable_auto_compaction" = "true"[OK]8, matching8 * replicaNumBUCKETS 1to the two case tables.Buildall requested after the bucket-only update.
Behavior changed
No user-facing behavior change. Regression case deflake only.