This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new 55187abeafc branch-3.1: [enhance](compaction) optimize mow base
compaction parameters #52321 (#52606)
55187abeafc is described below
commit 55187abeafc3d123fc5825d3de2f0d724eea9a07
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jul 2 13:27:14 2025 +0800
branch-3.1: [enhance](compaction) optimize mow base compaction parameters
#52321 (#52606)
Cherry-picked from #52321
Co-authored-by: Luwei <[email protected]>
---
be/src/cloud/cloud_base_compaction.cpp | 6 +++++-
be/src/cloud/config.cpp | 2 +-
be/src/common/config.cpp | 1 +
be/src/common/config.h | 1 +
be/src/olap/base_compaction.cpp | 6 +++++-
5 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/be/src/cloud/cloud_base_compaction.cpp
b/be/src/cloud/cloud_base_compaction.cpp
index 4d436ff5d34..36070e7c2ce 100644
--- a/be/src/cloud/cloud_base_compaction.cpp
+++ b/be/src/cloud/cloud_base_compaction.cpp
@@ -200,9 +200,13 @@ Status CloudBaseCompaction::pick_rowsets_to_compact() {
int score = 0;
int rowset_cnt = 0;
+ int64_t max_compaction_score = _tablet->keys_type() ==
KeysType::UNIQUE_KEYS &&
+
_tablet->enable_unique_key_merge_on_write()
+ ?
config::mow_base_compaction_max_compaction_score
+ :
config::base_compaction_max_compaction_score;
while (rowset_cnt < _input_rowsets.size()) {
score +=
_input_rowsets[rowset_cnt++]->rowset_meta()->get_compaction_score();
- if (score > config::base_compaction_max_compaction_score) {
+ if (score > max_compaction_score) {
break;
}
}
diff --git a/be/src/cloud/config.cpp b/be/src/cloud/config.cpp
index e982f407cd9..3adeb694b5b 100644
--- a/be/src/cloud/config.cpp
+++ b/be/src/cloud/config.cpp
@@ -42,7 +42,7 @@ DEFINE_mInt32(tablet_sync_interval_s, "1800");
DEFINE_mInt32(init_scanner_sync_rowsets_parallelism, "10");
DEFINE_mInt64(min_compaction_failure_interval_ms, "5000");
-DEFINE_mInt64(base_compaction_freeze_interval_s, "7200");
+DEFINE_mInt64(base_compaction_freeze_interval_s, "1800");
DEFINE_mInt64(compaction_load_max_freeze_interval_s, "1200");
DEFINE_mInt64(cumu_compaction_interval_s, "1800");
diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index 43bda875974..ff3caf0ea67 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -442,6 +442,7 @@ DEFINE_mInt32(max_single_replica_compaction_threads, "-1");
DEFINE_Bool(enable_base_compaction_idle_sched, "true");
DEFINE_mInt64(base_compaction_min_rowset_num, "5");
DEFINE_mInt64(base_compaction_max_compaction_score, "20");
+DEFINE_mInt64(mow_base_compaction_max_compaction_score, "200");
DEFINE_mDouble(base_compaction_min_data_ratio, "0.3");
DEFINE_mInt64(base_compaction_dup_key_max_file_size_mbytes, "1024");
diff --git a/be/src/common/config.h b/be/src/common/config.h
index 037353fe0a4..c5d048c0295 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -490,6 +490,7 @@ DECLARE_mInt32(max_single_replica_compaction_threads);
DECLARE_Bool(enable_base_compaction_idle_sched);
DECLARE_mInt64(base_compaction_min_rowset_num);
DECLARE_mInt64(base_compaction_max_compaction_score);
+DECLARE_mInt64(mow_base_compaction_max_compaction_score);
DECLARE_mDouble(base_compaction_min_data_ratio);
DECLARE_mInt64(base_compaction_dup_key_max_file_size_mbytes);
diff --git a/be/src/olap/base_compaction.cpp b/be/src/olap/base_compaction.cpp
index f09851e201d..f0d961ae454 100644
--- a/be/src/olap/base_compaction.cpp
+++ b/be/src/olap/base_compaction.cpp
@@ -178,9 +178,13 @@ Status BaseCompaction::pick_rowsets_to_compact() {
int score = 0;
int rowset_cnt = 0;
+ int64_t max_compaction_score = _tablet->keys_type() ==
KeysType::UNIQUE_KEYS &&
+
_tablet->enable_unique_key_merge_on_write()
+ ?
config::mow_base_compaction_max_compaction_score
+ :
config::base_compaction_max_compaction_score;
while (rowset_cnt < _input_rowsets.size()) {
score +=
_input_rowsets[rowset_cnt++]->rowset_meta()->get_compaction_score();
- if (score > config::base_compaction_max_compaction_score) {
+ if (score > max_compaction_score) {
break;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]