This is an automated email from the ASF dual-hosted git repository. dataroaring 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 2a4ae8f5787 [fix](memory) Fix CloudEngineCalcDeleteBitmapTask handle() attach task in thread context (#33057) 2a4ae8f5787 is described below commit 2a4ae8f5787153e9b57c81eba6deafde2c7bcc36 Author: Xinyi Zou <zouxiny...@gmail.com> AuthorDate: Sat Mar 30 09:26:06 2024 +0800 [fix](memory) Fix CloudEngineCalcDeleteBitmapTask handle() attach task in thread context (#33057) --- be/src/agent/task_worker_pool.cpp | 1 + be/src/cloud/cloud_delta_writer.cpp | 3 ++- be/src/cloud/cloud_engine_calc_delete_bitmap_task.cpp | 15 +++++++++++++-- be/src/cloud/cloud_engine_calc_delete_bitmap_task.h | 2 ++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/be/src/agent/task_worker_pool.cpp b/be/src/agent/task_worker_pool.cpp index bb9b842705b..d212938f122 100644 --- a/be/src/agent/task_worker_pool.cpp +++ b/be/src/agent/task_worker_pool.cpp @@ -2004,6 +2004,7 @@ void calc_delete_bimtap_callback(CloudStorageEngine& engine, const TAgentTaskReq const auto& calc_delete_bitmap_req = req.calc_delete_bitmap_req; CloudEngineCalcDeleteBitmapTask engine_task(engine, calc_delete_bitmap_req, &error_tablet_ids, &succ_tablet_ids); + SCOPED_ATTACH_TASK(engine_task.mem_tracker()); status = engine_task.execute(); TFinishTaskRequest finish_task_request; diff --git a/be/src/cloud/cloud_delta_writer.cpp b/be/src/cloud/cloud_delta_writer.cpp index ef5f4dc33f7..23e00dfb746 100644 --- a/be/src/cloud/cloud_delta_writer.cpp +++ b/be/src/cloud/cloud_delta_writer.cpp @@ -52,7 +52,8 @@ Status CloudDeltaWriter::batch_init(std::vector<CloudDeltaWriter*> writers) { if (writer->_is_init || writer->_is_cancelled) { return Status::OK(); } - return writer->init(); + Status st = writer->init(); // included in SCOPED_ATTACH_TASK + return st; }); } diff --git a/be/src/cloud/cloud_engine_calc_delete_bitmap_task.cpp b/be/src/cloud/cloud_engine_calc_delete_bitmap_task.cpp index 2ff9b8e91ba..9c784b1ced7 100644 --- a/be/src/cloud/cloud_engine_calc_delete_bitmap_task.cpp +++ b/be/src/cloud/cloud_engine_calc_delete_bitmap_task.cpp @@ -17,6 +17,8 @@ #include "cloud/cloud_engine_calc_delete_bitmap_task.h" +#include <fmt/format.h> + #include <memory> #include "cloud/cloud_meta_mgr.h" @@ -29,6 +31,7 @@ #include "olap/tablet_meta.h" #include "olap/txn_manager.h" #include "olap/utils.h" +#include "runtime/memory/mem_tracker_limiter.h" namespace doris { @@ -38,7 +41,10 @@ CloudEngineCalcDeleteBitmapTask::CloudEngineCalcDeleteBitmapTask( : _engine(engine), _cal_delete_bitmap_req(cal_delete_bitmap_req), _error_tablet_ids(error_tablet_ids), - _succ_tablet_ids(succ_tablet_ids) {} + _succ_tablet_ids(succ_tablet_ids) { + _mem_tracker = MemTrackerLimiter::create_shared(MemTrackerLimiter::Type::SCHEMA_CHANGE, + "CloudEngineCalcDeleteBitmapTask"); +} void CloudEngineCalcDeleteBitmapTask::add_error_tablet_id(int64_t tablet_id, const Status& err) { std::lock_guard<std::mutex> lck(_mutex); @@ -126,9 +132,14 @@ CloudTabletCalcDeleteBitmapTask::CloudTabletCalcDeleteBitmapTask( _engine_calc_delete_bitmap_task(engine_task), _tablet(tablet), _transaction_id(transaction_id), - _version(version) {} + _version(version) { + _mem_tracker = MemTrackerLimiter::create_shared( + MemTrackerLimiter::Type::SCHEMA_CHANGE, + fmt::format("CloudTabletCalcDeleteBitmapTask#_transaction_id={}", _transaction_id)); +} void CloudTabletCalcDeleteBitmapTask::handle() const { + SCOPED_ATTACH_TASK(_mem_tracker); RowsetSharedPtr rowset; DeleteBitmapPtr delete_bitmap; RowsetIdUnorderedSet rowset_ids; diff --git a/be/src/cloud/cloud_engine_calc_delete_bitmap_task.h b/be/src/cloud/cloud_engine_calc_delete_bitmap_task.h index 514f1b059d5..ad5486b9cb6 100644 --- a/be/src/cloud/cloud_engine_calc_delete_bitmap_task.h +++ b/be/src/cloud/cloud_engine_calc_delete_bitmap_task.h @@ -28,6 +28,7 @@ namespace doris { class CloudEngineCalcDeleteBitmapTask; +class MemTrackerLimiter; class CloudTabletCalcDeleteBitmapTask { public: @@ -46,6 +47,7 @@ private: std::shared_ptr<CloudTablet> _tablet; int64_t _transaction_id; int64_t _version; + std::shared_ptr<MemTrackerLimiter> _mem_tracker; }; class CloudEngineCalcDeleteBitmapTask : public EngineTask { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org