Skip to content

[FLINK-37382][runtime] Early optimization for adaptive join when either input is below broadcast threshold.#26211

Closed
SinBex wants to merge 2 commits into
apache:release-2.0from
SinBex:quick_broadcast_join
Closed

[FLINK-37382][runtime] Early optimization for adaptive join when either input is below broadcast threshold.#26211
SinBex wants to merge 2 commits into
apache:release-2.0from
SinBex:quick_broadcast_join

Conversation

@SinBex

@SinBex SinBex commented Feb 25, 2025

Copy link
Copy Markdown
Contributor

What is the purpose of the change

When the large table side has not yet initialized, if the small table side finishes early and the output data volume is smaller than the broadcast threshold, the adaptive join operator can be optimized to a broadcast hash join in advance. This can help reduce network shuffle overhead.

Brief change log

  • The adaptive broadcast join optimization is triggered in advance when any input of the join node meets the broadcast condition.

Verifying this change

This change is already covered by existing tests, such as (please describe tests).

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): (no)
  • The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
  • The serializers: (no)
  • The runtime per-record code paths (performance sensitive): (no )
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
  • The S3 file system connector: (no )

Documentation

  • Does this pull request introduce a new feature? (no)

@flinkbot

flinkbot commented Feb 25, 2025

Copy link
Copy Markdown
Collaborator

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

@SinBex SinBex force-pushed the quick_broadcast_join branch 2 times, most recently from 7f38d82 to 643e9f3 Compare February 26, 2025 02:29

@JunRuiLee JunRuiLee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @SinBex for fix, most of it looks good. I left two minor comments, PTAL~

@SinBex SinBex force-pushed the quick_broadcast_join branch from 643e9f3 to 27c3f98 Compare February 26, 2025 03:04
@SinBex SinBex force-pushed the quick_broadcast_join branch from 27c3f98 to e114ebb Compare February 26, 2025 03:08
@SinBex

SinBex commented Feb 26, 2025

Copy link
Copy Markdown
Contributor Author

Thanks to @JunRuiLee for reviewing, all comments have been fixed, PTAL

@JunRuiLee JunRuiLee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @SinBex , LGTM.

…hould not chain runnables to the element queue future in a tight loop. (apache#25569)"

This reverts commit 3829bb5.
@JunRuiLee

JunRuiLee commented Feb 26, 2025

Copy link
Copy Markdown
Contributor

This GHA shows that the flink-connect tests have passed, which reverted FLINK-36585. You can find more details at https://github.com/SinBex/flink/actions/runs/13537602087.

JunRuiLee pushed a commit that referenced this pull request Feb 26, 2025
…er input is below broadcast threshold.

this closes #26211
@JunRuiLee JunRuiLee closed this Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants