Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
719e604
feat: add a broadcast channel for job state event notifications
Jeadie Jun 23, 2026
6ed1d3e
fix(core): add From<&JobId> for String so borrowed ids satisfy Into<S…
Jeadie Jun 23, 2026
1323db6
fix(scheduler): address PR review feedback on job state broadcast cha…
Jeadie Jul 3, 2026
9b69e8b
Merge branch 'main' into upstream/job-state-broadcast-channel
phillipleblanc Jul 20, 2026
102fce2
docs: link JobStateEvent by absolute path so rustdoc resolves it
phillipleblanc Jul 20, 2026
8b3ec30
chore(ci): bump taiki-e/install-action from 2.85.0 to 2.85.2 (#2191)
dependabot[bot] Jul 27, 2026
0deac13
chore(deps): bump aws-config from 1.9.0 to 1.10.1 (#2190)
dependabot[bot] Jul 27, 2026
99897a0
chore(deps): bump ctor from 1.0.10 to 1.0.11 (#2189)
dependabot[bot] Jul 27, 2026
da96bff
chore(ci): bump the github-codeql group across 1 directory with 2 upd…
dependabot[bot] Jul 27, 2026
33d9bac
chore(ci): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 (#2134)
dependabot[bot] Jul 27, 2026
dc6b380
feat(core,scheduler): transport RuntimeStatsExec reports to scheduler…
avantgardnerio Jul 27, 2026
828d6f0
fix: stop every task running every union branch at low partition coun…
andygrove Jul 27, 2026
ba46698
slice 1b3a: PerPartitionFilterExec operator + codec (#2195)
avantgardnerio Jul 27, 2026
2b04f83
ci: run TPC-DS SF1 with 1 and 4 partitions per task (#2197)
andygrove Jul 28, 2026
bd5563a
fix(scheduler): execute null-aware anti joins in one task (#2188)
phillipleblanc Jul 28, 2026
7eeff3b
fix(scheduler): keep GROUP BY-less aggregates when propagating empty …
andygrove Jul 28, 2026
6bbcc07
chore: use taplo for Cargo.toml formatting (#2179)
villebro Jul 28, 2026
86fc9a7
fix(scheduler): harden PropagateEmptyExecRule against grouping sets, …
andygrove Jul 28, 2026
d32877b
feat(core): rewrite NOT IN subqueries into distributable anti join pl…
andygrove Jul 28, 2026
b34144e
test: add HA chaos harness that drives the scheduler's fault-toleranc…
andygrove Jul 29, 2026
0c7b707
chore(ci): bump taiki-e/install-action from 2.85.2 to 2.85.3 (#2203)
dependabot[bot] Jul 29, 2026
03fc4be
chore(deps): bump rustls from 0.23.42 to 0.23.43 (#2209)
dependabot[bot] Jul 30, 2026
2349364
chore(deps): bump http from 1.4.2 to 1.5.0 (#2208)
dependabot[bot] Jul 30, 2026
1bbd477
chore(deps): bump ctor from 1.0.11 to 1.0.12 (#2206)
dependabot[bot] Jul 30, 2026
017386f
fix(cli): sort jobs by stage completion ratio (#1947)
QuakeWang Jul 30, 2026
39092ae
chore(ci): bump taiki-e/install-action from 2.85.3 to 2.85.4 (#2205)
dependabot[bot] Jul 31, 2026
bb9757f
chore(deps): bump nix from 0.29.0 to 0.31.3 (#2207)
dependabot[bot] Jul 31, 2026
187a650
chore(deps): bump reqwest from 0.12.28 to 0.13.4 (#2210)
dependabot[bot] Jul 31, 2026
6e9ff68
fix(scheduler): preserve stages on transition errors (#2215)
QuakeWang Aug 3, 2026
c43e56e
feat(scheduler): range-repartition rule primitives (batteries-include…
avantgardnerio Aug 3, 2026
63fa496
chore(ci): bump the github-codeql group with 2 updates (#2218)
dependabot[bot] Aug 3, 2026
a3161a3
fix(scheduler): fail running jobs when all executors are lost (#2029)…
akshaychitneni Aug 3, 2026
9fecada
feat: make gRPC max message size consistently configurable (#2173)
andygrove Aug 4, 2026
984513e
fix(executor): bind the gRPC listener before registering with the sch…
andygrove Aug 4, 2026
371146a
Merge branch 'main' into upstream/job-state-broadcast-channel
phillipleblanc Aug 5, 2026
c4b8cba
refactor(scheduler): expose existing job state event stream
phillipleblanc Aug 5, 2026
10d4d08
feat: add `poll_now_notify` to `poll_loop` and `on_work_available` ca…
Jeadie Aug 5, 2026
5355a36
fix: update mTLS example for poll loop arguments (#2229)
phillipleblanc Aug 5, 2026
0df207e
chore(deps): bump bytesize from 2.4.2 to 2.7.0 (#2227)
dependabot[bot] Aug 5, 2026
947f7d9
chore(ci): bump taiki-e/install-action from 2.85.4 to 2.85.7 (#2228)
dependabot[bot] Aug 5, 2026
121f136
chore(deps): bump cryptography from 48.0.1 to 50.0.0 in /python (#2221)
dependabot[bot] Aug 5, 2026
bd25aed
fix(scheduler): expose cluster state event stream
phillipleblanc Aug 5, 2026
aff9390
Merge branch 'main' into upstream/job-state-broadcast-channel
phillipleblanc Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand All @@ -80,7 +80,7 @@ jobs:
with:
python-version: "3.12"

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand All @@ -103,7 +103,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7.0.1
- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true
- name: Generate license file
Expand Down Expand Up @@ -154,7 +154,7 @@ jobs:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand Down Expand Up @@ -203,7 +203,7 @@ jobs:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand Down Expand Up @@ -248,7 +248,7 @@ jobs:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand Down Expand Up @@ -293,7 +293,7 @@ jobs:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4
uses: github/codeql-action/init@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4
with:
languages: actions

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4
uses: github/codeql-action/analyze@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4
with:
category: "/language:actions"
16 changes: 5 additions & 11 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -238,22 +238,16 @@ jobs:
rustup toolchain install stable
rustup default stable
- uses: swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 #2.9.1
- name: Install cargo-tomlfmt
uses: taiki-e/install-action@7572810d7dd469b651bb7793945692cf78da5dd7 # v2.85.0
- name: Install taplo
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: cargo-tomlfmt@0.2.1
tool: taplo-cli@0.10.0

- name: Check Cargo.toml formatting
run: |
# if you encounter error, try rerun the command below, finally run 'git diff' to
# check which Cargo.toml introduces formatting violation
#
# ignore ./Cargo.toml because putting workspaces in multi-line lists make it easy to read
# if you encounter an error, run 'ci/scripts/rust_toml_fmt.sh --write'
# (or 'taplo format') locally to fix the formatting, then commit the result.
ci/scripts/rust_toml_fmt.sh
if test -f "./Cargo.toml.bak"; then
echo "cargo tomlfmt found format violations"
exit 1
fi

datafusion-proto-sync-check:
name: Check vendored DataFusion proto is in sync
Expand Down
61 changes: 38 additions & 23 deletions .github/workflows/tpcds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,30 @@ on:

jobs:
tpcds-sf1:
name: TPC-DS SF1 (all queries, static planner)
name: TPC-DS SF1 (static planner, ${{ matrix.label }})
runs-on: ubuntu-latest
container:
image: amd64/rust
# A passing run takes ~7 minutes. Cap the job well under the 6-hour
# A passing leg takes ~7 minutes. Cap the job well under the 6-hour
# default so a hung query fails fast and frees the runner rather than
# sitting for hours with no useful signal.
timeout-minutes: 45
strategy:
# One red leg must not cancel the other; the two task-packing modes are
# independent signals.
fail-fast: false
matrix:
include:
- label: "1 partition per task"
task_args: ""
slug: "mpt1"
# 4 rather than a larger cap because the scheduler clamps the slice to
# the executor's free vcores (`budget.vcores.min(cap)`), and the
# executor below runs `--concurrent-tasks 4`. A higher cap would be
# unreachable and the label would overstate what is covered.
- label: "4 partitions per task"
task_args: "-c ballista.scheduler.max_partitions_per_task=4"
slug: "mpt4"
steps:
- name: Install dependencies
run: |
Expand All @@ -76,6 +92,10 @@ jobs:
rust-version: stable

- uses: swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 #2.9.1
with:
# Share the build cache across all matrix legs — the compiled
# binaries are identical; only the per-suite CLI args differ.
shared-key: tpcds-sf1

- name: Build Ballista binaries
run: |
Expand Down Expand Up @@ -157,27 +177,22 @@ jobs:
done
nc -z 127.0.0.1 50051 || { echo "executor did not start"; exit 1; }

# Run the suite under the default (static) planner. The tpcds binary
# internally loops all non-skipped queries and exits non-zero on any
# failure, so a single invocation covers the whole suite.
# This matrix leg runs the suite under the default (static) planner at
# one task-packing setting. The tpcds binary internally loops all
# non-skipped queries and exits non-zero on any failure, so a single
# invocation covers the whole suite. The other leg runs in parallel.
#
# Coverage for the adaptive planner (AQE on) and for single-partition
# execution is being added separately; both currently fail on
# pre-existing bugs.
run_suite() {
local label="$1"; shift
echo "::group::[$label] TPC-DS suite"
./target/tpch-ci/tpcds \
--host 127.0.0.1 --port 50050 \
--path "$DATA_DIR" \
--partitions 16 \
--verify \
"$@"
echo "::endgroup::"
}

run_suite "static planner" \
-c datafusion.optimizer.prefer_hash_join=false
# Coverage for the adaptive planner (AQE on) is being added
# separately; it currently fails on pre-existing bugs.
echo "::group::[static planner, ${{ matrix.label }}] TPC-DS suite"
./target/tpch-ci/tpcds \
--host 127.0.0.1 --port 50050 \
--path "$DATA_DIR" \
--partitions 16 \
--verify \
-c datafusion.optimizer.prefer_hash_join=false \
${{ matrix.task_args }}
echo "::endgroup::"

- name: Upload cluster logs on failure
# `!success()` rather than `failure()` so a timed-out or cancelled
Expand All @@ -186,7 +201,7 @@ jobs:
if: ${{ !success() }}
uses: actions/upload-artifact@v7
with:
name: tpcds-sf1-cluster-logs
name: tpcds-sf1-cluster-logs-${{ matrix.slug }}
retention-days: 14
path: |
${{ runner.temp }}/scheduler.log
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tpch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
-p ballista-benchmarks

- name: Install tpchgen-cli
uses: taiki-e/install-action@7572810d7dd469b651bb7793945692cf78da5dd7 # v2.85.0
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: tpchgen-cli@2.0.2

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/web-tui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ jobs:
- uses: swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 #2.9.1

- name: Install Trunk
uses: taiki-e/install-action@7572810d7dd469b651bb7793945692cf78da5dd7 # v2.85.0
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: trunk@0.21.14

- name: Install cargo-get
uses: taiki-e/install-action@7572810d7dd469b651bb7793945692cf78da5dd7 # v2.85.0
uses: taiki-e/install-action@67729d5c413db75907f0ad1e39bb04b9c868ff60 # v2.85.7
with:
tool: cargo-get@1.4.0

Expand Down
Loading
Loading