Skip to content

DO NOT MERGE: focused Trino perf run for Hoglake changes - #1227

Draft
bill-ph wants to merge 1 commit into
mainfrom
gwyang/hoglake-footer-cache-perf
Draft

bill-ph wants to merge 1 commit into
mainfrom
gwyang/hoglake-footer-cache-perf

Conversation

@bill-ph

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

Copy link
Copy Markdown
Collaborator

Warning

Do not merge. This branch exists only to run a focused Trino perf test. It trims the nightly posthog_frozen_perf scenario in place and adjusts the tests that pin the nightly setup. Merging it would shrink the nightly benchmark and drop PGWire, Athena and the properties comparison.

Purpose

This runs the frozen PostHog perf scenario against Trino only, to measure Hoglake connector changes without the full five-engine suite. The full suite takes about 2 h 20 min; this takes about 25 min.

It was used to verify PostHog/trino#72, which removed the per-split floor from Hoglake byte-range reads.

What it changes

  • Targets: trino and trino_cached only, in both the scenario and the query catalog. PGWire and Athena are dropped.
  • Queries: q_events_total_v5 and q_events_count_one_day_v5, plus q_events_by_name_march_2026_v5 as a check that scans didn't get slower.
  • Iterations: 1 warmup and 2 measured, instead of 4 measured.
  • Properties comparison: the step is removed.
  • Query catalog: the athena_external relation variant is removed, because paired catalogs must declare exactly the variants their targets need.
  • Tests: in tests/mw-dev/scenario/runner_test.go, the target assertion now expects the two Trino targets, and the properties-step test is skipped. The workflow runs these tests before deploying. The catalog-contents tests in tests/perf/core pin the nightly corpus and will fail on this branch; the workflow doesn't run them.

The scenario keeps its name because scenario-dev.yml and tests/mw-dev/run.sh select the Trino suite, image and cells by posthog_frozen_perf.

Branch runs don't publish to the perf dashboard; publishing requires refs/heads/main.

How to run

Use a digest-pinned image from scripts/resolve_trino_master_image.sh, or omit trino_image to use the newest PostHog/trino master build:

gh workflow run scenario-dev.yml -R PostHog/duckgres --ref gwyang/hoglake-footer-cache-perf -f scenario=posthog_frozen_perf -f trino_image=<ghcr.io/posthog/trino:<sha>@sha256:<digest>>

Results are in the run's scenario-dev-posthog_frozen_perf-<run>-1 artifact, under perf/query_results.csv.

Result for PostHog/trino#72

Run 36000704000 used the image built from the #72 merge commit. The baseline is scheduled run 35976233587 on 2026-09-24, from master before #72. Median seconds:

Query trino before → after trino_cached before → after
Events COUNT(*) 109.8 → 1.00 97.0 → 1.15
One-day count (matches no row groups) 111.0 → 1.68 96.7 → 2.51
Events by name, March 110.0 → 28.1 97.2 → 13.9

All 12 query runs succeeded with the same row counts as the baseline. The artifacts record timings and row counts, not result values.

🤖 Generated with Claude Code

Narrows posthog_frozen_perf to the Trino targets and the queries bounded
by per-split Parquet footer handling, to measure PostHog/trino#72 without
the full five-engine run:

- targets: trino, trino_cached (no PGWire, no Athena)
- queries: q_events_total_v5, q_events_count_one_day_v5, and
  q_events_by_name_march_2026_v5 as a scan-bound regression check
- 1 warmup + 2 measured iterations; no properties comparison

The scenario keeps its name because scenario-dev.yml and run.sh select the
Trino suite and image by it. The scenario tests that pin the nightly shape
are adjusted to the targeted one. Branch runs do not publish to the perf
dashboard (publishing requires refs/heads/main).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

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 3 0
E2E/journey files 0 0 0
Workflow files 0 0 0

Signals

  • Test cases: +0 / -0
  • Assertions: +1 / -1
  • Skips or known failures added: 1
  • 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: likely reduced

Warnings

  • New skips or known failures (likely reduced)
    • 1 skip/allowlist line(s) added

This branch has not been deployed

No deployments
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