Skip to content

Commit

Permalink
[branch-2.0](fix) Fix extremely high CPU usage caused by rf merge #27894
Browse files Browse the repository at this point in the history
  • Loading branch information
zhiqiang-hhhh authored Dec 1, 2023
1 parent 1a82d5a commit fda5e11
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
7 changes: 3 additions & 4 deletions be/src/runtime/runtime_filter_mgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
#include "runtime/runtime_state.h"
#include "runtime/thread_context.h"
#include "util/brpc_client_cache.h"
#include "util/spinlock.h"

namespace doris {

Expand Down Expand Up @@ -227,7 +226,7 @@ Status RuntimeFilterMergeControllerEntity::_init_with_desc(
auto filter_id = runtime_filter_desc->filter_id;
// LOG(INFO) << "entity filter id:" << filter_id;
cntVal->filter->init_with_desc(&cntVal->runtime_filter_desc, query_options, -1, false);
_filter_map.emplace(filter_id, CntlValwithLock {cntVal, std::make_unique<SpinLock>()});
_filter_map.emplace(filter_id, CntlValwithLock {cntVal, std::make_unique<std::mutex>()});
return Status::OK();
}

Expand All @@ -249,7 +248,7 @@ Status RuntimeFilterMergeControllerEntity::_init_with_desc(
auto filter_id = runtime_filter_desc->filter_id;
// LOG(INFO) << "entity filter id:" << filter_id;
cntVal->filter->init_with_desc(&cntVal->runtime_filter_desc, query_options);
_filter_map.emplace(filter_id, CntlValwithLock {cntVal, std::make_unique<SpinLock>()});
_filter_map.emplace(filter_id, CntlValwithLock {cntVal, std::make_unique<std::mutex>()});
return Status::OK();
}

Expand Down Expand Up @@ -323,7 +322,7 @@ Status RuntimeFilterMergeControllerEntity::merge(const PMergeFilterRequest* requ
// iter->second = pair{CntlVal,SpinLock}
cntVal = iter->second.first;
{
std::lock_guard<SpinLock> l(*iter->second.second);
std::lock_guard<std::mutex> l(*iter->second.second);
MergeRuntimeFilterParams params(request, attach_data);
ObjectPool* pool = cntVal->pool.get();
RuntimeFilterWrapperHolder holder;
Expand Down
2 changes: 1 addition & 1 deletion be/src/runtime/runtime_filter_mgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class RuntimeFilterMergeControllerEntity {
std::shared_mutex _filter_map_mutex;
std::shared_ptr<MemTracker> _mem_tracker;
using CntlValwithLock =
std::pair<std::shared_ptr<RuntimeFilterCntlVal>, std::unique_ptr<SpinLock>>;
std::pair<std::shared_ptr<RuntimeFilterCntlVal>, std::unique_ptr<std::mutex>>;
std::map<int, CntlValwithLock> _filter_map;
RuntimeState* _state;
bool _opt_remote_rf = true;
Expand Down

0 comments on commit fda5e11

Please sign in to comment.