Skip to content

test(perf): increase Trino worker execution concurrency - #1163

Merged
bill-ph merged 2 commits into
mainfrom
codex/trino-perf-read-concurrency
Sep 9, 2026
Merged

test(perf): increase Trino worker execution concurrency#1163
bill-ph merged 2 commits into
mainfrom
codex/trino-perf-read-concurrency

Conversation

@bill-ph

@bill-ph bill-ph commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Follow up on the completed experiment in #1162, closed without merging its shape-selection code. Start from main and change only the isolated Trino test lane's worker execution concurrency:

  • Set task.max-worker-threads=8 and task.min-drivers=16 per worker, 4x the pinned engine's expected one-CPU defaults of 2 and 4.
  • Keep three 1-CPU/4-GiB workers, 3G heaps, query-memory limits, coordinator configuration, and aggregation task.concurrency unchanged.
  • Preserve the existing SQL, cache settings, warmups, and measured iterations. No matrix, new profiles, or workflow changes.
  • Document scope, benchmark dispatch, tradeoffs, and recovery. No test changes.

The shared isolated manifest is used by both Trino E2E and frozen perf. Shared and production deployments are unaffected.

Motivation

The four-shape benchmark showed little benefit from consolidation at equal resources and approximately 2x throughput at twice the worker budget. Historical CPU usage during exact distinct was around 48-56% of quota. The experiment increased both resources and CPU-derived concurrency, so it did not isolate a CPU or storage bottleneck.

This change tests whether additional overlapping scan work improves latency at the original resource budget. task.min-drivers is a leaf-driver target, not a hard limit or an S3 request count. Higher concurrency can also increase heap pressure and context switching; no performance improvement is claimed before validation.

Validation

  • go test -count=1 ./tests/mw-dev ./tests/perf/publishercli passed.
  • just test-scenario passed.
  • git diff --check passed; independent review found no actionable issues.
  • just lint reports six existing SA4023 diagnostics in unchanged control-plane code; reproduced on base d7e852d8. Changed-code lint (golangci-lint run --new-from-rev=origin/main) passed.

Run the existing benchmark on this branch and compare query medians, errors, memory pressure, and CPU behavior against the recorded baseline before merging:

gh workflow run scenario-dev.yml --ref codex/trino-perf-read-concurrency -f scenario=posthog_frozen_perf

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Test Impact Plan

Deterministic summary of how this PR changes tests, CI runners, and coverage-risk signals.

Summary

Area Added Changed Deleted
Test files 0 2 0
E2E/journey files 0 0 0
Workflow files 0 0 0

Signals

  • Test cases: +0 / -0
  • Assertions: +0 / -0
  • Skips or known failures added: 0
  • Workflow continue-on-error added: 0
  • Workflow path filters added: 0
  • Test commands removed from justfile: 0
  • E2E/journey retry lines added: 0

Coverage risk: neutral or increased

No coverage-reduction warnings detected.

@bill-ph
bill-ph merged commit 4ce22c3 into main Sep 9, 2026
35 checks passed
@bill-ph
bill-ph deleted the codex/trino-perf-read-concurrency branch September 9, 2026 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant