apache / apache/datafusion-ballista

Make scheduler prefer assign the task with same jobId to same executor

Open
#12 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
2.1k
Forks
320
Avg merge
1d 22h
Merged PRs (30d)
66

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
In current code, each poll work request will scan all waiting task in the same name space.https://github.com/apache/arrow-datafusion/blob/d7ae8c2631b5ea86ac2328530f0a4745daaf0bda/ballista/rust/scheduler/src/state/mod.rs#L283

``
plan1 -> shuffle wirte -> plan2
``

Seems p1 and p2 run on the same executor may avoid sending intermediate results.
**Describe the solution you'd like**
1. executor request job with jobId
2. scheduler send same job task back

**Describe alternatives you've considered**

Contributor guide

Open the contributing guide

Research direction

Read ballista/rust/scheduler/src/state/mod.rs around line 283 to understand how polling scans waiting tasks in a namespace. Trace how an executor requests work and how jobId is represented. Done means executor requests include a jobId and the scheduler prefers returning another task from that job to the same executor.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.