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]

Reply via email to