Skip to content

docs: refresh benchmarking.md with dedicated shuffle PVC results - #2171

Merged
andygrove merged 1 commit into
apache:mainfrom
andygrove:bench-refresh-2026-07-23
Jul 24, 2026
Merged

docs: refresh benchmarking.md with dedicated shuffle PVC results#2171
andygrove merged 1 commit into
apache:mainfrom
andygrove:bench-refresh-2026-07-23

Conversation

@andygrove

Copy link
Copy Markdown
Member

Summary

Follow-up to #2161. Refresh the SF1000 numbers on docs/source/contributors-guide/benchmarking.md with results from a run that mounts a dedicated 1000 GiB gp3 EBS PVC per executor at /data and passes --work-dir /data to the executor. This isolates Ballista's shuffle writes from the container overlay FS / shared root EBS volume — matching the spark.kubernetes.executor.volumes.persistentVolumeClaim.spark-local-dir-1 pattern that Spark already uses on the same cluster.

Impact

Same commit (main @ 696ca29b), same cluster shape, only difference is the dedicated shuffle PVC:

Query Prior run With PVC Speedup
Q8 189.30 s 45.74 s 4.1×
Q9 154.88 s 67.27 s 2.3×
Q17 60.46 s 47.29 s 1.3×
Q18 282.79 s 78.32 s 3.6×
Q20 88.93 s 97.13 s ~parity
19Q comparable subset 1080 s 722 s 1.5×

Q8 in-suite (45.74 s) is now within 1 s of Q8 standalone (47.4 s in a solo run), confirming the pre-PVC slowdown was root-EBS bandwidth contention from prior queries' dirty pages, not anything Ballista-internal — see the analysis in #2168.

What changed in the doc

  • Environment: record the underlying r6i.24xlarge node type (96 vCPU, 768 GiB, EBS-only) and the new dedicated Ballista PVC.
  • New "Executor storage" section: why the dedicated volume matters, with a short EXPLAIN ANALYZE-based explanation of the pre-PVC contention.
  • Ballista configuration: add --work-dir and --grpc-server-max-*-message-size rows; note that the 16 MiB gRPC default currently causes Q11/Q21/Q22 to fail.
  • Results: refreshed Ballista column; mark Q11/Q21/Q22 as FAIL pending investigation of the client-submission channel's 16 MiB ceiling; publish Q1–Q10 + Q12–Q20 subset totals so cross-engine comparison is on the same set of queries.
  • Reproducing: updated ballista-executor invocation with the new flags.

Test plan

  • Doc renders as GitHub markdown (tables + code blocks).
  • Prettier clean.
  • Reviewer sanity-check that the results numbers match the referenced result JSON (available on request).

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Jul 24, 2026
@andygrove
andygrove requested a review from milenkovicm July 24, 2026 16:13
…ted numbers

Refresh with the SF1000 results from the run that mounts a dedicated 1000
GiB gp3 PVC per executor pod at /data and passes --work-dir /data to the
executor. This isolates shuffle writes from the shared root EBS volume,
matching the Spark spark-local-dir-1 pattern already in use on the same
cluster.

Impact vs the prior run (same commit, same cluster shape, no PVC):
- Q8:  189.30 -> 45.74 s (4.1x)
- Q18: 282.79 -> 78.32 s (3.6x)
- comparable-subset total (19Q): 1080 -> 722 s

Changes to the doc:

- Environment: record the underlying r6i.24xlarge node type (96 vCPU,
  768 GiB, EBS-only) and the new dedicated Ballista PVC.
- New "Executor storage" section: why the dedicated volume matters, with
  a short EXPLAIN ANALYZE-based explanation of the pre-PVC contention on
  the root EBS bandwidth.
- Ballista configuration: add --work-dir, --grpc-server-max-*-message-size
  entries; note the 16 MiB gRPC default causes Q11/Q21/Q22 to fail.
- Results: refreshed Ballista column; mark Q11/Q21/Q22 as FAIL (open
  investigation on the client-submission channel's 16 MiB ceiling);
  publish a Q1-Q10 + Q12-Q20 subset total for engine comparison.
- Reproducing: updated ballista-executor invocation with the new flags.

Signed-off-by: Andy Grove <agrove@apache.org>
@andygrove
andygrove force-pushed the bench-refresh-2026-07-23 branch from 14a692e to 5f8ff48 Compare July 24, 2026 16:15
@andygrove
andygrove merged commit 9efb1f4 into apache:main Jul 24, 2026
3 checks passed
@andygrove
andygrove deleted the bench-refresh-2026-07-23 branch July 24, 2026 16:18
andygrove added a commit that referenced this pull request Jul 24, 2026
Add a workflow_dispatch trigger to the docs deploy workflow so it can be
re-run on demand. The workflow previously only ran on push to main, so a
dropped push event (as happened with #2171) leaves the change unpublished
with no way to re-trigger the deploy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant