This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new d8c2db72daa [fix](memory) Fix compaction destructor memory tracking #33549 d8c2db72daa is described below commit d8c2db72daa912ffd0f66bc24ef83103c661fd24 Author: Xinyi Zou <zouxiny...@gmail.com> AuthorDate: Thu Apr 11 23:06:36 2024 +0800 [fix](memory) Fix compaction destructor memory tracking #33549 --- be/src/exec/rowid_fetcher.cpp | 2 -- be/src/olap/compaction.cpp | 10 +++++++++- be/src/service/internal_service.cpp | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/be/src/exec/rowid_fetcher.cpp b/be/src/exec/rowid_fetcher.cpp index 3892aac966a..c921be9509f 100644 --- a/be/src/exec/rowid_fetcher.cpp +++ b/be/src/exec/rowid_fetcher.cpp @@ -327,8 +327,6 @@ struct IteratorItem { Status RowIdStorageReader::read_by_rowids(const PMultiGetRequest& request, PMultiGetResponse* response) { - SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER( - ExecEnv::GetInstance()->rowid_storage_reader_tracker()); // read from storage engine row id by row id OlapReaderStatistics stats; vectorized::Block result_block; diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp index 81b41d76ee6..dec407894ef 100644 --- a/be/src/olap/compaction.cpp +++ b/be/src/olap/compaction.cpp @@ -67,6 +67,7 @@ #include "olap/txn_manager.h" #include "olap/utils.h" #include "runtime/memory/mem_tracker_limiter.h" +#include "runtime/thread_context.h" #include "util/time.h" #include "util/trace.h" @@ -120,7 +121,14 @@ Compaction::Compaction(BaseTabletSPtr tablet, const std::string& label) init_profile(label); } -Compaction::~Compaction() = default; +Compaction::~Compaction() { + SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER(_mem_tracker); + _output_rs_writer.reset(); + _tablet.reset(); + _input_rowsets.clear(); + _output_rowset.reset(); + _cur_tablet_schema.reset(); +} void Compaction::init_profile(const std::string& label) { _profile = std::make_unique<RuntimeProfile>(label); diff --git a/be/src/service/internal_service.cpp b/be/src/service/internal_service.cpp index adcd81689c1..9918980514c 100644 --- a/be/src/service/internal_service.cpp +++ b/be/src/service/internal_service.cpp @@ -1926,6 +1926,7 @@ void PInternalService::multiget_data(google::protobuf::RpcController* controller watch.start(); brpc::ClosureGuard closure_guard(done); response->mutable_status()->set_status_code(0); + SCOPED_ATTACH_TASK(ExecEnv::GetInstance()->rowid_storage_reader_tracker()); Status st = RowIdStorageReader::read_by_rowids(*request, response); st.to_protobuf(response->mutable_status()); LOG(INFO) << "multiget_data finished, cost(us):" << watch.elapsed_time() / 1000; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org