apache / apache/datafusion-ballista

[DISCUSSION] Should Ballista add support for streaming eager execution?

Open
#2,003 2 comments 0 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.**

Ballista currently implements a batch execution model directly modeled after Apache Spark. Query stages are executed to completion, with output written to shuffle files. The plan is optionally re-optimized based on statistics from completed query stages (AQE). This is a well proven design that scales massively for ETL and analytical workloads.

This issue is to discuss whether we should consider extending Ballista to also support a model that is closer to DataFusion's in-process execution model, where the whole plan is executed eagerly and results are streamed between stages, bypassing the shuffle files. This can lead to faster time to first results in some cases, and lower latency queries.

**Describe the solution you'd like**

**Describe alternatives you've considered**

**Additional context**

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by reviewing Ballista's batch execution, shuffle-file, and AQE model against DataFusion's eager streaming model described in the issue. Done would require an agreed design and scope for whether and how streaming eager execution should be supported.

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
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.