Skip to content

Commit fe251a9

Browse files
authored
[Chore](runtime-filter) adjust need_local_merge setting conditions (apache#33886)
1 parent 3a4b7bb commit fe251a9

2 files changed

Lines changed: 11 additions & 22 deletions

File tree

be/src/pipeline/pipeline_x/pipeline_x_fragment_context.cpp

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,8 @@ Status PipelineXFragmentContext::prepare(const doris::TPipelineFragmentParams& r
228228
_query_ctx->init_runtime_predicates({0});
229229
}
230230

231-
_need_local_merge =
232-
request.__isset.parallel_instances &&
233-
(request.__isset.per_node_shared_scans && !request.per_node_shared_scans.empty());
231+
_need_local_merge = request.__isset.parallel_instances;
232+
234233
// 2. Build pipelines with operators in this fragment.
235234
auto root_pipeline = add_pipeline();
236235
RETURN_IF_ERROR_OR_CATCH_EXCEPTION(_build_pipelines(
@@ -934,14 +933,13 @@ Status PipelineXFragmentContext::_create_operator(ObjectPool* pool, const TPlanN
934933
// Therefore, here we need to use a stack-like structure.
935934
_pipeline_parent_map.pop(cur_pipe, parent_idx, child_idx);
936935
std::stringstream error_msg;
936+
937937
switch (tnode.node_type) {
938938
case TPlanNodeType::OLAP_SCAN_NODE: {
939939
op.reset(new OlapScanOperatorX(pool, tnode, next_operator_id(), descs, _num_instances));
940940
RETURN_IF_ERROR(cur_pipe->add_operator(op));
941-
if (find_with_default(request.per_node_shared_scans, op->node_id(), false)) {
942-
if (request.__isset.parallel_instances) {
943-
cur_pipe->set_num_tasks(request.parallel_instances);
944-
}
941+
if (request.__isset.parallel_instances) {
942+
cur_pipe->set_num_tasks(request.parallel_instances);
945943
op->set_ignore_data_distribution();
946944
}
947945
break;
@@ -955,21 +953,17 @@ Status PipelineXFragmentContext::_create_operator(ObjectPool* pool, const TPlanN
955953
"Jdbc scan node is disabled, you can change be config enable_java_support "
956954
"to true and restart be.");
957955
}
958-
if (find_with_default(request.per_node_shared_scans, op->node_id(), false)) {
959-
if (request.__isset.parallel_instances) {
960-
cur_pipe->set_num_tasks(request.parallel_instances);
961-
}
956+
if (request.__isset.parallel_instances) {
957+
cur_pipe->set_num_tasks(request.parallel_instances);
962958
op->set_ignore_data_distribution();
963959
}
964960
break;
965961
}
966962
case doris::TPlanNodeType::FILE_SCAN_NODE: {
967963
op.reset(new FileScanOperatorX(pool, tnode, next_operator_id(), descs, _num_instances));
968964
RETURN_IF_ERROR(cur_pipe->add_operator(op));
969-
if (find_with_default(request.per_node_shared_scans, op->node_id(), false)) {
970-
if (request.__isset.parallel_instances) {
971-
cur_pipe->set_num_tasks(request.parallel_instances);
972-
}
965+
if (request.__isset.parallel_instances) {
966+
cur_pipe->set_num_tasks(request.parallel_instances);
973967
op->set_ignore_data_distribution();
974968
}
975969
break;
@@ -978,10 +972,8 @@ Status PipelineXFragmentContext::_create_operator(ObjectPool* pool, const TPlanN
978972
case TPlanNodeType::ES_HTTP_SCAN_NODE: {
979973
op.reset(new EsScanOperatorX(pool, tnode, next_operator_id(), descs, _num_instances));
980974
RETURN_IF_ERROR(cur_pipe->add_operator(op));
981-
if (find_with_default(request.per_node_shared_scans, op->node_id(), false)) {
982-
if (request.__isset.parallel_instances) {
983-
cur_pipe->set_num_tasks(request.parallel_instances);
984-
}
975+
if (request.__isset.parallel_instances) {
976+
cur_pipe->set_num_tasks(request.parallel_instances);
985977
op->set_ignore_data_distribution();
986978
}
987979
break;

be/src/runtime/runtime_state.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -531,9 +531,6 @@ Status RuntimeState::register_producer_runtime_filter(const doris::TRuntimeFilte
531531
bool need_local_merge,
532532
doris::IRuntimeFilter** producer_filter,
533533
bool build_bf_exactly) {
534-
// If runtime filter need to be local merged, `build_bf_exactly` will lead to bloom filters with
535-
// different size need to be merged which is not allowed.
536-
// So if `need_local_merge` is true, we will disable `build_bf_exactly`.
537534
if (desc.has_remote_targets || need_local_merge) {
538535
return global_runtime_filter_mgr()->register_local_merge_producer_filter(
539536
desc, query_options(), producer_filter, build_bf_exactly);

0 commit comments

Comments
 (0)