Uh oh!
There was an error while loading. Please reload this page.
[improvement](compaction) Disable MOW version-count promotion by default - #67178
Open
Yukang-Lian wants to merge 2 commits into
Open
[improvement](compaction) Disable MOW version-count promotion by default#67178Yukang-Lian wants to merge 2 commits into
Yukang-Lian wants to merge 2 commits into
Conversation
### What problem does this PR solve? Issue Number: None Related PR: apache#49383 Problem Summary: Size-based cumulative compaction promotes a merge-on-write output rowset to the base layer once its version span exceeds compaction_promotion_version_count, even when the rowset is only a few hundred KB. This causes high-frequency tiny loads to enter base compaction prematurely and trigger unnecessary base compactions. PR apache#49383 makes cumulative compaction aggregate and remove historical delete bitmap versions, so raw version span is no longer needed as a proxy for delete bitmap pressure. Remove the version-count promotion from local and cloud policies and remove its obsolete configuration. Size-based and delete-version promotion remain unchanged. ### Release note MOW cumulative compaction no longer promotes small output rowsets based only on version count. ### Check List (For Author) - Test: Unit Test - ./run-be-ut.sh --run --filter=TestSizeBasedCumulativeCompactionPolicy.*:TestCloudSizeBasedCumulativeCompactionPolicy.* -j80 - build-support/check-format.sh - build-support/check-build-hygiene.sh - Behavior changed: Yes. Small MOW cumulative output rowsets remain in the cumulative layer until normal size or delete-version promotion applies. - Does this need documentation: No
hello-stephen
commented
Aug 26, 2026
Contributor
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Yukang-Lian
marked this pull request as ready for review
August 26, 2026 16:17
Yukang-Lian
commented
Aug 27, 2026
CollaboratorAuthor
run buildall |
hello-stephen
commented
Aug 27, 2026
Contributor
TPC-H: Total hot run time: 17234 ms |
hello-stephen
commented
Aug 27, 2026
Contributor
TPC-DS: Total hot run time: 81438 ms |
hello-stephen
commented
Aug 27, 2026
Contributor
ClickBench: Total hot run time: 14.63 s |
hello-stephen
commented
Aug 27, 2026
Contributor
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
Yukang-Lian
commented
Aug 27, 2026
CollaboratorAuthor
run cloud_p0 |
Yukang-Lian
commented
Aug 27, 2026
CollaboratorAuthor
run vault_p0 |
hello-stephen
commented
Aug 27, 2026
Contributor
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
### What problem does this PR solve? Issue Number: None Related PR: apache#49383 Problem Summary: The MOW version-count promotion protects against excessive delete bitmap metadata, but its default threshold of 1000 can promote tiny cumulative output rowsets and trigger frequent base compactions. Retain the local and cloud promotion logic as an operational fallback, while changing the default threshold to the maximum int64 value so version count alone does not promote rowsets by default. Operators can lower compaction_promotion_version_count if the fallback is needed. ### Release note MOW cumulative compaction no longer promotes output rowsets by version count under the default configuration. The existing configuration remains available as a fallback. ### Check List (For Author) - Test: Unit Test - ./run-be-ut.sh --run --filter=TestSizeBasedCumulativeCompactionPolicy.*:TestCloudSizeBasedCumulativeCompactionPolicy.* -j80 - build-support/check-format.sh - build-support/check-build-hygiene.sh - Behavior changed: Yes. Version-count promotion is disabled by default but remains configurable. - Does this need documentation: No
Yukang-Lian
commented
Sep 1, 2026
CollaboratorAuthor
run buildall |
hello-stephen
commented
Sep 1, 2026
Contributor
TPC-H: Total hot run time: 16753 ms |
hello-stephen
commented
Sep 1, 2026
Contributor
TPC-DS: Total hot run time: 82422 ms |
hello-stephen
commented
Sep 1, 2026
Contributor
ClickBench: Total hot run time: 14.63 s |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Issue Number: None
Related PR: #49383
Problem Summary:
Size-based cumulative compaction currently promotes a merge-on-write output rowset to the base layer once its version span exceeds
compaction_promotion_version_count, even when the output rowset is only a few hundred KB. For high-frequency tiny loads, this moves small rowsets into the base layer prematurely and causes frequent base compactions.PR #49383 makes cumulative compaction aggregate historical delete bitmaps into the output rowset version and remove the pre-rowset delete bitmap versions. With that optimization enabled, raw rowset version span no longer needs to trigger promotion by default.
This PR changes the default
compaction_promotion_version_countfrom 1,000 to the maximumint64value. This effectively disables version-count promotion by default in both local and cloud modes, while retaining the existing logic and configuration as an operational fallback. Size-based and delete-version promotion remain unchanged.Release note
MOW cumulative compaction no longer promotes output rowsets by version count under the default configuration. The existing configuration remains available as a fallback.
Check List (For Author)
Test
Focused ASAN BE UT: 68/68 passed for
TestSizeBasedCumulativeCompactionPolicy.*andTestCloudSizeBasedCumulativeCompactionPolicy.*.Behavior changed:
compaction_promotion_version_countto restore the previous safeguard.Does this need documentation?
QA validation
Please validate both local and cloud modes:
compaction_promotion_version_countto a small value such as 5 and verify that version-count promotion can still be enabled. For local mode, configure/restart the BE before testing an existing tablet; cloud mode reads the value on each evaluation.Check List (For Reviewer who merge this PR)