feat: Support Job-Level Dependency with Async Job Activation #1428
+616
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Closes #1344 , as the Step 1 - Building the job-level dependency logic.
For the next step, we will apply
EXPLAIN ANALYZEjob as the first use case.Rationale for this change
Ballista currently treats a single job as the atomic unit of scheduling, with no mechanism to run multiple jobs sequentially.
To support features like
EXPLAIN ANALYZE, we need job-level dependencies. This PR allows the scheduler to split complex plans into dependent jobs, ensuring downstream jobs only trigger after upstream dependencies successfully complete and provide necessary metrics/state.What changes are included in this PR?
This PR introduces a new ·Pending· status and a dependency resolution mechanism within the TaskManager.
Job submission flow
exeute_queryGRPC requestJob lookup flow
Are there any user-facing changes?
No