Uh oh!
There was an error while loading. Please reload this page.
branch-4.1: [feature](runtime-filter) Add adaptive global runtime filter tree publish - #65599
Conversation
hello-stephen
commented
Jul 14, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
BiteTheDDDDt
commented
Jul 14, 2026
run buildall |
hello-stephen
commented
Jul 14, 2026
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Jul 14, 2026
FE UT Coverage ReportIncrement line coverage |
hello-stephen
commented
Jul 14, 2026
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Jul 14, 2026
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Jul 14, 2026
FE Regression Coverage ReportIncrement line coverage |
…lish Issue Number: N/A Related PR: N/A Problem Summary: Global runtime filters are currently published from the merge coordinator directly to every scan target. When a merged filter is large and the cluster has many BEs, the coordinator sends many large duplicate RPC attachments. This change adds adaptive tree publish for global runtime filters so each relay node forwards a bounded number of copies based on runtime_filter_tree_publish_max_send_bytes. Add runtime_filter_tree_publish_max_send_bytes session variable to control adaptive global runtime filter tree publish. Set it to 0 to disable tree publish. - Test: - Manual test: git diff --cached --check - Manual test: build-support/check-format.sh - Manual test: DORIS_HOME=/mnt/disk8/xiaolei/codespaces/doris2 DORIS_THIRDPARTY=/mnt/disk8/xiaolei/codespaces/doris2/thirdparty ninja -C be/build_Release src/exec/CMakeFiles/Exec.dir/runtime_filter/runtime_filter_mgr.cpp.o src/service/CMakeFiles/Service.dir/internal_service.cpp.o - Manual test: ./build.sh --fe - Behavior changed: Yes. Large global runtime filters can be published through an adaptive relay tree instead of direct coordinator fanout. - Does this need documentation: No (cherry picked from commit 75171cb)
81e4bdb to
df01110CompareBiteTheDDDDt
commented
Jul 15, 2026
run buildall |
hello-stephen
commented
Jul 15, 2026
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
yiguolei
commented
Jul 17, 2026
skip buildall |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
Uh oh!
There was an error while loading. Please reload this page.
What problem does this PR solve?
Issue Number: None
Related PR: #64851
Problem Summary: Backport #64851 to branch-4.1. Large global runtime filters are currently published directly from the merge coordinator to every scan target, causing repeated large RPC attachments. This backport adds adaptive tree publish controlled by
runtime_filter_tree_publish_max_send_bytes.The branch-4.1 adaptation keeps its
DummyBrpcCallbackand query-context lifetime model, and falls back to direct publish for legacy targets without fragment IDs. TheTQueryOptionsfield keeps master field id225for wire compatibility.Release note
Add session variable
runtime_filter_tree_publish_max_send_bytesto control adaptive global runtime filter tree publish. Set it to 0 to disable tree publish.Check List (For Author)
./generated-source.sh noclean./run-fe-ut.sh --run org.apache.doris.qe.SessionVariablesTestruntime_filter_mgr.cppandinternal_service.cpppassed-fsyntax-onlywith the branch-4.1 release compile commandsclang-format --dry-run --Werroron all changed C++ filesgit diff --check upstream/branch-4.1..HEAD