diff --git a/be/src/cloud/cloud_base_compaction.cpp b/be/src/cloud/cloud_base_compaction.cpp index 4d436ff5d34ab5..36070e7c2ce316 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 e982f407cd950f..3adeb694b5b8fd 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 43bda8759741ae..ff3caf0ea679f5 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 037353fe0a4008..c5d048c0295b29 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 f09851e201d1ff..f0d961ae45405d 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; } }