This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
     new c77c8b0d7f [branch-1.1-lts](metracker) Fix compaction tracker #13082
c77c8b0d7f is described below

commit c77c8b0d7ffac6a9be3d4a228421c30e02c936f8
Author: Xinyi Zou <zouxiny...@gmail.com>
AuthorDate: Fri Sep 30 13:00:07 2022 +0800

    [branch-1.1-lts](metracker) Fix compaction tracker #13082
---
 be/src/http/default_path_handlers.cpp |  8 ++++----
 be/src/olap/base_compaction.cpp       |  2 +-
 be/src/olap/compaction.cpp            | 10 +++++++++-
 be/src/olap/compaction.h              |  4 ++++
 be/src/olap/cumulative_compaction.cpp |  2 +-
 be/src/util/mem_info.cpp              |  2 +-
 6 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/be/src/http/default_path_handlers.cpp 
b/be/src/http/default_path_handlers.cpp
index 3efed02a09..abde990673 100644
--- a/be/src/http/default_path_handlers.cpp
+++ b/be/src/http/default_path_handlers.cpp
@@ -151,16 +151,16 @@ void mem_tracker_handler(const 
WebPageHandler::ArgumentMap& args, std::stringstr
     for (const shared_ptr<MemTracker>& tracker : trackers) {
         string parent = tracker->parent() == nullptr ? "none" : 
tracker->parent()->label();
         string limit_str = tracker->limit() == -1 ? "none" : 
ItoaKMGT(tracker->limit());
-        string current_consumption_str = ItoaKMGT(tracker->consumption());
-        string peak_consumption_str = ItoaKMGT(tracker->peak_consumption());
+        int64_t current_consumption = tracker->consumption();
+        int64_t peak_consumption = tracker->peak_consumption();
         int64_t use_count = tracker.use_count();
         string current_consumption_normalize = 
AccurateItoaKMGT(tracker->consumption());
         string peak_consumption_normalize = 
AccurateItoaKMGT(tracker->peak_consumption());
         (*output) << strings::Substitute(
                 
"<tr><td>$0</td><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td>$5</td><td>$6</"
                 "td><td>$7</td><td>$8</td></tr>\n",
-                -1, tracker->label(), parent, limit_str, 
current_consumption_str,
-                current_consumption_normalize, peak_consumption_str, 
peak_consumption_normalize,
+                -1, tracker->label(), parent, limit_str, current_consumption,
+                current_consumption_normalize, peak_consumption, 
peak_consumption_normalize,
                 use_count);
     }
 
diff --git a/be/src/olap/base_compaction.cpp b/be/src/olap/base_compaction.cpp
index 6277e2417b..37125cde52 100644
--- a/be/src/olap/base_compaction.cpp
+++ b/be/src/olap/base_compaction.cpp
@@ -65,7 +65,7 @@ OLAPStatus BaseCompaction::execute_compact_impl() {
         return OLAP_ERR_BE_CLONE_OCCURRED;
     }
 
-    
SCOPED_ATTACH_TASK(StorageEngine::instance()->new_compaction_mem_tracker(), 
ThreadContext::TaskType::COMPACTION);
+    SCOPED_ATTACH_TASK(_new_mem_tracker, ThreadContext::TaskType::COMPACTION);
 
     // 2. do base compaction, merge rowsets
     int64_t permits = get_compaction_permits();
diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp
index 3ebcf65389..ed09b15e83 100644
--- a/be/src/olap/compaction.cpp
+++ b/be/src/olap/compaction.cpp
@@ -36,7 +36,15 @@ Compaction::Compaction(TabletSharedPtr tablet, const 
std::string& label,
           _tablet(tablet),
           _input_rowsets_size(0),
           _input_row_num(0),
-          _state(CompactionState::INITED) {}
+          _state(CompactionState::INITED) {
+#ifndef BE_TEST
+    _new_mem_tracker = std::make_shared<MemTrackerLimiter>(
+            -1, label, 
StorageEngine::instance()->new_compaction_mem_tracker());
+    _new_mem_tracker->enable_reset_zero();
+#else
+    _new_mem_tracker = std::make_shared<MemTrackerLimiter>(-1, label);
+#endif
+}
 
 Compaction::~Compaction() {}
 
diff --git a/be/src/olap/compaction.h b/be/src/olap/compaction.h
index 8b77b78a39..026b78dd7b 100644
--- a/be/src/olap/compaction.h
+++ b/be/src/olap/compaction.h
@@ -90,6 +90,10 @@ protected:
 
     // the child of root, only track rowset writer mem
     std::shared_ptr<MemTracker> _writer_tracker;
+
+    // the root tracker for this compaction
+    std::shared_ptr<MemTrackerLimiter> _new_mem_tracker;
+
     TabletSharedPtr _tablet;
 
     std::vector<RowsetSharedPtr> _input_rowsets;
diff --git a/be/src/olap/cumulative_compaction.cpp 
b/be/src/olap/cumulative_compaction.cpp
index 15de430609..140e0a31da 100644
--- a/be/src/olap/cumulative_compaction.cpp
+++ b/be/src/olap/cumulative_compaction.cpp
@@ -72,7 +72,7 @@ OLAPStatus CumulativeCompaction::execute_compact_impl() {
         return OLAP_ERR_CUMULATIVE_CLONE_OCCURRED;
     }
 
-    
SCOPED_ATTACH_TASK(StorageEngine::instance()->new_compaction_mem_tracker(), 
ThreadContext::TaskType::COMPACTION);
+    SCOPED_ATTACH_TASK(_new_mem_tracker, ThreadContext::TaskType::COMPACTION);
 
     // 3. do cumulative compaction, merge rowsets
     int64_t permits = get_compaction_permits();
diff --git a/be/src/util/mem_info.cpp b/be/src/util/mem_info.cpp
index 66e9a97ff1..674c053136 100644
--- a/be/src/util/mem_info.cpp
+++ b/be/src/util/mem_info.cpp
@@ -98,7 +98,7 @@ void MemInfo::init() {
     _s_mem_limit_str = PrettyPrinter::print(_s_mem_limit, TUnit::BYTES);
     _s_hard_mem_limit = _s_physical_mem - std::min(209715200L, _s_physical_mem 
/ 10); // 200M
 
-    LOG(INFO) << "Physical Memory: " << PrettyPrinter::print(_s_physical_mem, 
TUnit::BYTES);
+    LOG(INFO) << "Physical Memory: " << PrettyPrinter::print(_s_physical_mem, 
TUnit::BYTES) << ", /proc/meminfo/MemTotal: " << line;
     _s_initialized = true;
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to