apache / apache/datafusion-ballista

Support broadcast exchange

Open
#342 6 comments 2 reactions 0 assignees View on GitHub
enhancement performance
Dominant language
Rust
Stars
2.1k
Forks
320
Avg merge
1d 11h
Merged PRs (30d)
86

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
Broadcasting partitions helps for when joins on the build side are small. In that case we can transform partitioned joins to broadcast joins.

**Describe the solution you'd like**
We should support broadcasts in the physical plan.

Broadcasting means copying the entire dataset to each worker.

This could be used in broadcast joins, i.e. by broadcasting smaller dataframes to every worker, which can provide big speedups as the other (big) side doesn't have to be shuffled.

**Describe alternatives you've considered**

**Additional context**

Probably we can reuse some heuristics from Spark for conditions when to perform broadcasting for joins.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Start by tracing how partitioned joins are represented and planned in the physical plan, then identify the worker data-transfer path and join-planning heuristics. Done means the physical plan can represent broadcasts and use them for suitable broadcast joins.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.