This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch dev-1.0.1 in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
commit 1dcd992828c7bffc6f3c51371e50f415f2aa5053 Author: zhannngchen <[email protected]> AuthorDate: Sat Apr 2 13:00:56 2022 +0800 [Improvement][fix](compaction) Change min_compaction_failure_interval_sec to 5 and fix a bug of log (#8781) see issue #8767 --- be/src/common/config.h | 2 +- be/src/http/action/compaction_action.cpp | 28 +++++++++++++++------- be/src/olap/olap_server.cpp | 5 ++-- docs/en/administrator-guide/config/be_config.md | 2 +- docs/zh-CN/administrator-guide/config/be_config.md | 2 +- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/be/src/common/config.h b/be/src/common/config.h index 91f8dff56f..2a5f03de8e 100644 --- a/be/src/common/config.h +++ b/be/src/common/config.h @@ -284,7 +284,7 @@ CONF_mInt32(cumulative_compaction_skip_window_seconds, "30"); // if compaction of a tablet failed, this tablet should not be chosen to // compaction until this interval passes. -CONF_mInt64(min_compaction_failure_interval_sec, "600"); // 10 min +CONF_mInt64(min_compaction_failure_interval_sec, "5"); // 5 seconds // This config can be set to limit thread number in compaction thread pool. CONF_mInt32(max_compaction_threads, "10"); diff --git a/be/src/http/action/compaction_action.cpp b/be/src/http/action/compaction_action.cpp index 64f104210c..6f6372b96d 100644 --- a/be/src/http/action/compaction_action.cpp +++ b/be/src/http/action/compaction_action.cpp @@ -228,20 +228,32 @@ OLAPStatus CompactionAction::_execute_compaction_callback(TabletSharedPtr tablet std::string tracker_label = "CompactionAction:BaseCompaction:" + std::to_string(syscall(__NR_gettid)); BaseCompaction base_compaction(tablet, tracker_label, _compaction_mem_tracker); OLAPStatus res = base_compaction.compact(); - if (res != OLAP_SUCCESS && res != OLAP_ERR_BE_NO_SUITABLE_VERSION) { - DorisMetrics::instance()->base_compaction_request_failed->increment(1); - LOG(WARNING) << "failed to init base compaction. res=" << res - << ", table=" << tablet->full_name(); + if (res != OLAP_SUCCESS) { + if (res == OLAP_ERR_BE_NO_SUITABLE_VERSION) { + // Ignore this error code. + VLOG_NOTICE << "failed to init base compaction due to no suitable version, tablet=" + << tablet->full_name(); + } else { + DorisMetrics::instance()->base_compaction_request_failed->increment(1); + LOG(WARNING) << "failed to init base compaction. res=" << res + << ", tablet=" << tablet->full_name(); + } } status = res; } else if (compaction_type == PARAM_COMPACTION_CUMULATIVE) { std::string tracker_label = "CompactionAction:CumulativeCompaction:" + std::to_string(syscall(__NR_gettid)); CumulativeCompaction cumulative_compaction(tablet, tracker_label, _compaction_mem_tracker); OLAPStatus res = cumulative_compaction.compact(); - if (res != OLAP_SUCCESS && res != OLAP_ERR_CUMULATIVE_NO_SUITABLE_VERSION) { - DorisMetrics::instance()->cumulative_compaction_request_failed->increment(1); - LOG(WARNING) << "failed to do cumulative compaction. res=" << res - << ", table=" << tablet->full_name(); + if (res != OLAP_SUCCESS) { + if (res == OLAP_ERR_CUMULATIVE_NO_SUITABLE_VERSION) { + // Ignore this error code. + VLOG_NOTICE << "failed to init cumulative compaction due to no suitable version," + << "tablet=" << tablet->full_name(); + } else { + DorisMetrics::instance()->cumulative_compaction_request_failed->increment(1); + LOG(WARNING) << "failed to do cumulative compaction. res=" << res + << ", table=" << tablet->full_name(); + } } status = res; } diff --git a/be/src/olap/olap_server.cpp b/be/src/olap/olap_server.cpp index 05a5e69af4..196580ed72 100644 --- a/be/src/olap/olap_server.cpp +++ b/be/src/olap/olap_server.cpp @@ -578,14 +578,13 @@ Status StorageEngine::_submit_compaction_task(TabletSharedPtr tablet, Compaction // reset compaction tablet->reset_compaction(compaction_type); _pop_tablet_from_submitted_compaction(tablet, compaction_type); - if (st != OLAP_SUCCESS) { + if (!st.ok()) { return Status::InternalError(strings::Substitute( "failed to prepare compaction task and calculate permits, tablet_id=$0, compaction_type=$1, " "permit=$2, current_permit=$3, status=$4", tablet->tablet_id(), compaction_type, permits, _permit_limiter.usage(), st.get_error_msg())); - } else { - return Status::OK(); } + return st; } } diff --git a/docs/en/administrator-guide/config/be_config.md b/docs/en/administrator-guide/config/be_config.md index 0f8bfaaca2..b1d9f9c5eb 100644 --- a/docs/en/administrator-guide/config/be_config.md +++ b/docs/en/administrator-guide/config/be_config.md @@ -862,7 +862,7 @@ Minimum read buffer size (in bytes) * Type: int32 * Description: During the cumulative compaction process, when the selected tablet fails to be merged successfully, it will wait for a period of time before it may be selected again. The waiting period is the value of this configuration. -* Default value: 600 +* Default value: 5 * Unit: seconds ### `min_compaction_threads` diff --git a/docs/zh-CN/administrator-guide/config/be_config.md b/docs/zh-CN/administrator-guide/config/be_config.md index 2b86af5dbf..1dd7e7a015 100644 --- a/docs/zh-CN/administrator-guide/config/be_config.md +++ b/docs/zh-CN/administrator-guide/config/be_config.md @@ -863,7 +863,7 @@ txn 管理器中每个 txn_partition_map 的最大 txns 数,这是一种自我 * 类型:int32 * 描述:在 cumulative compaction 过程中,当选中的 tablet 没能成功的进行版本合并,则会等待一段时间后才会再次有可能被选中。等待的这段时间就是这个配置的值。 -* 默认值:600 +* 默认值:5 * 单位:秒 ### `min_compaction_threads` --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
