diff --git a/be/src/cloud/cloud_base_compaction.cpp b/be/src/cloud/cloud_base_compaction.cpp index 99b916b45e5ccd..d749459f8422d6 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 8465e172f139e7..0f78e885881bbd 100644 --- a/be/src/cloud/config.cpp +++ b/be/src/cloud/config.cpp @@ -43,7 +43,7 @@ DEFINE_mInt32(init_scanner_sync_rowsets_parallelism, "10"); DEFINE_mInt32(sync_rowsets_slow_threshold_ms, "1000"); 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 dd3be9f152016a..ca93bd452e76f2 100644 --- a/be/src/common/config.cpp +++ b/be/src/common/config.cpp @@ -429,6 +429,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 150e4e602fb76e..8f5804da394283 100644 --- a/be/src/common/config.h +++ b/be/src/common/config.h @@ -477,6 +477,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 59ef901f3533ec..b8f0026229734b 100644 --- a/be/src/olap/base_compaction.cpp +++ b/be/src/olap/base_compaction.cpp @@ -181,9 +181,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; } }