diff --git a/tests/mw-dev/README.md b/tests/mw-dev/README.md index 94ed9cd6..62397f01 100644 --- a/tests/mw-dev/README.md +++ b/tests/mw-dev/README.md @@ -839,6 +839,12 @@ The former `posthog_frozen_perf_trino_cached` selection has been removed; use `posthog_frozen_perf` instead. Omit the workflow's `duckgres_image` override so the control-plane build explicitly persists the expected baseline cache setting. +This experimental branch enables `optimizer.dictionary-aggregation=true` in +the isolated Trino coordinator and worker configurations. The shared fixture +template also applies this setting to isolated Trino E2E clusters. Production +configuration is managed separately. For an off/on benchmark, use the same +digest-pinned Trino image and the full query corpus in both runs. + For local invocation, set `SCENARIO_NAME=posthog_frozen_perf` and `E2E_SUITE=trino` before both `tests/mw-dev/run.sh deploy` and `test-scenario`. Use the existing lane credentials, images, and namespace requirements. The harness starts three Trino diff --git a/tests/mw-dev/manifests.trino.tmpl.yaml b/tests/mw-dev/manifests.trino.tmpl.yaml index 31d73d72..d3513c25 100644 --- a/tests/mw-dev/manifests.trino.tmpl.yaml +++ b/tests/mw-dev/manifests.trino.tmpl.yaml @@ -108,6 +108,7 @@ data: cache-manager.name=memory config.properties: | coordinator=true + optimizer.dictionary-aggregation=true node-scheduler.include-coordinator=false http-server.http.port=8080 http-server.https.enabled=true @@ -174,6 +175,7 @@ data: cache-manager.name=memory config.properties: | coordinator=false + optimizer.dictionary-aggregation=true http-server.http.port=8080 discovery.uri=http://duckgres-trino.${NAMESPACE}.svc:8080 query.max-memory=${TRINO_QUERY_MEMORY} diff --git a/tests/mw-dev/run_sh_test.go b/tests/mw-dev/run_sh_test.go index 7a2a958d..fed397c8 100644 --- a/tests/mw-dev/run_sh_test.go +++ b/tests/mw-dev/run_sh_test.go @@ -227,7 +227,7 @@ func TestTrinoWorkersMatchDuckgresAggregateCompute(t *testing.T) { } data := manifest["data"].(map[string]any) config := data["config.properties"].(string) - for _, want := range []string{"query.max-memory=6GB", "query.max-memory-per-node=" + expectedPerNode} { + for _, want := range []string{"query.max-memory=6GB", "query.max-memory-per-node=" + expectedPerNode, "optimizer.dictionary-aggregation=true"} { if !strings.Contains(config, want) { t.Errorf("Trino %s config missing %q:\n%s", name, want, config) }