apache / apache/datafusion-ballista

Proposal for more efficient disk-based shuffle mechanism

Open
#660 6 comments 6 reactions 0 assignees View on GitHub
enhancement
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.**
The current shuffle mechanism is too basic and produces too many small shuffle files.

Tasks to implement new version:

- [ ] https://github.com/apache/arrow-ballista/issues/332
- [ ] Implement a new version of `ShuffleWriterExec` that can work with a coalesced input of multiple parallel input partitions
- [ ] Changes to scheduler tracking of shuffle files

**Describe the solution you'd like**
See https://docs.google.com/document/d/16SIEoniAWKSFt8XKDLsOfRQ0sU--5E9_OIyE42Zj808/edit?usp=sharing

**Describe alternatives you've considered**

**Additional context**

Contributor guide

Open the contributing guide

Research direction

Start by reading linked issue #332 and the referenced design document, then trace ShuffleWriterExec and the scheduler's shuffle-file tracking. Done means the new disk-based shuffle version handles coalesced input partitions, reduces small shuffle files, and includes the required scheduler tracking changes.

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
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.