Skip to content

DO NOT MERGE: full perf comparison with dictionary aggregation - #1227

Closed
bill-ph wants to merge 4 commits into
mainfrom
gwyang/hoglake-footer-cache-perf
Closed

bill-ph wants to merge 4 commits 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 runs the full benchmark with dictionary aggregation enabled in isolated Trino fixtures. It is an experiment for deciding the PostHog runtime default.

The full performance run already uses a Trino image containing PostHog/trino#95, but leaves dictionary aggregation at its upstream default of false. This experiment enables the aggregation path that reuses preserved Parquet dictionary entries.

The branch includes current main and restores the complete benchmark: all seven table queries, all five engine configurations, the properties comparison, one warmup and four measured iterations. The diff against main contains only two Trino configuration properties, an existing fixture regression assertion, and documentation. The shared fixture template also affects isolated Trino E2E/bootstrap clusters.

For the comparison, use the same digest-pinned Trino image as the completed configuration-off run: ghcr.io/posthog/trino:97d08abc2c6835b6040be1107b9b1de781934ba2@sha256:8556bb02a431a701e5457cd9bd22e31013cf7fb13caf4c184df16457b239adc5. That run's source tree matches the current main base. Compare latency, Trino query CPU, peak memory and failures across the complete corpus; interpret Athena queueing separately from engine time.

Validation:

  • The existing configuration assertion failed for both coordinator and worker before adding the property, then passed.
  • just test-mw-fixtures and just test-perf passed.
  • just lint reports six staticcheck findings in unchanged code; untouched main produces identical lint output.
  • Independent review found no correctness, overengineering, scope or public-data issues.

No production configuration is changed. Raw queries, dataset locations, credentials and deployment identifiers are omitted from this PR.

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

github-actions Bot commented Sep 24, 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 3 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 and others added 3 commits September 24, 2026 15:00
…umn bounds (do not merge)

Restore the full nightly query set for the trino and trino_cached targets,
still with one warmup and two measured iterations. Pin the isolated hoglake
server to a build of main 27a705ed, which serves /scan column_stats
(PostHog/hoglake#189), so the connector's planning-time pruning
(PostHog/trino#77) has bounds to prune on. The merge of main brings the
stats-hydration wait (#1229).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bill-ph bill-ph changed the title DO NOT MERGE: focused Trino perf run for Hoglake changes DO NOT MERGE: full perf comparison with dictionary aggregation Oct 1, 2026
@bill-ph bill-ph closed this Oct 5, 2026
@bill-ph
bill-ph deleted the gwyang/hoglake-footer-cache-perf branch October 5, 2026 12:04
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