apache / apache/datafusion-ballista
Support broadcast exchange
- 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
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