From d02a30ba4a62ebe2e4dc1c5c53359e582f729645 Mon Sep 17 00:00:00 2001 From: caoyang10 <535011125@qq.com> Date: Mon, 7 Sep 2020 18:51:53 +0800 Subject: [PATCH] [Bug][Compaction] fix Too many VersionCount cause by wrong compaction failure time #4551 --- be/src/olap/storage_engine.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/be/src/olap/storage_engine.cpp b/be/src/olap/storage_engine.cpp index a07d6b9eb93558..3442888743fca2 100644 --- a/be/src/olap/storage_engine.cpp +++ b/be/src/olap/storage_engine.cpp @@ -603,7 +603,11 @@ void StorageEngine::_perform_cumulative_compaction(DataDir* data_dir) { OLAPStatus res = cumulative_compaction.compact(); if (res != OLAP_SUCCESS) { - best_tablet->set_last_cumu_compaction_failure_time(UnixMillis()); + if (res == OLAP_ERR_BE_TRY_BE_LOCK_ERROR) { + best_tablet->set_last_cumu_compaction_failure_time(UnixMillis()); + } else { + best_tablet->set_last_cumu_compaction_failure_time(0); + } if (res != OLAP_ERR_CUMULATIVE_NO_SUITABLE_VERSIONS) { DorisMetrics::instance()->cumulative_compaction_request_failed->increment(1); LOG(WARNING) << "failed to do cumulative compaction. res=" << res @@ -638,7 +642,11 @@ void StorageEngine::_perform_base_compaction(DataDir* data_dir) { BaseCompaction base_compaction(best_tablet, tracker_label, _compaction_mem_tracker); OLAPStatus res = base_compaction.compact(); if (res != OLAP_SUCCESS) { - best_tablet->set_last_base_compaction_failure_time(UnixMillis()); + if (res == OLAP_ERR_BE_TRY_BE_LOCK_ERROR) { + best_tablet->set_last_base_compaction_failure_time(UnixMillis()); + } else { + best_tablet->set_last_base_compaction_failure_time(0); + } if (res != OLAP_ERR_BE_NO_SUITABLE_VERSION) { DorisMetrics::instance()->base_compaction_request_failed->increment(1); LOG(WARNING) << "failed to init base compaction. res=" << res