Skip to content

eval: export pooled quantiles and top-k from random manifests - #230

Open
milindsrivastava1997 wants to merge 2 commits into
mainfrom
eval/random-pooled
Open

milindsrivastava1997 wants to merge 2 commits into
mainfrom
eval/random-pooled

Conversation

@milindsrivastava1997

Copy link
Copy Markdown
Contributor

Summary

  • --random-manifest now exports RQEs that an ASAPQuery random workload marks pooled:
    • Pooled quantile: one quantile over all of a group's samples. The RQE and tree leaf stay at the query's grouping (one sketch per group), not per series.
    • Pooled top-k: topk(k, sum by (G) (...)), one global heap over G's groups. Keys = G's cardinality, read at the curves' 1,000 keys with an assumption noted when fewer.
  • A pooled query's e2e entry is its tree alone (expr). ASAPQuery's saved planner then plans it without text (--expr-only). Its PromQL, which the other systems run, moves to client_promql.
  • A pooled quantile's PromQL is checked against the stand-in shape quantile by (G) (phi, quantile_over_time(phi, data[W])). Non-pooled quantiles keep the avg by shape.
  • Pooled and per-series RQEs with the same fields stay distinct (pooled is part of the sharing key).

Used by ProjectASAP/ASAPQuery codex/random-pooled (the pooled and dashboard-style random workloads).

Validation

  • python3 -m pytest scripts/test_export_autosketch_eval_table.py: 56 pass, with 4 new tests:
    • pooled quantile leaf;
    • pooled top-k leaf;
    • per-group / global-heap table RQEs and tree-only e2e entries;
    • pooled vs per-series RQEs kept apart.
  • Exported all 10 seed-862-pooled and 10 seed-862-dashboard manifests. The solver and ASAPQuery's --planner saved --expr-only plan every one with nothing left out.
  • An end-to-end pilot on 5 systems: ASAPQuery's pooled answers agree with exact ClickHouse.

🤖 Generated with Claude Code

https://claude.ai/code/session_015KzRxtgjFfFJeyDy8fN2CB

milindsrivastava1997 and others added 2 commits October 15, 2026 14:52
A manifest RQE marked pooled is one quantile over each group's samples, or
one global top-k heap over its grouping's groups. Its e2e entry is the tree
alone, so ASAPQuery's saved planner plans it without the PromQL, which the
other systems run (client_promql; for a pooled quantile, the avg-of-series
stand-in).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015KzRxtgjFfFJeyDy8fN2CB
quantile by (G) (phi, quantile_over_time(phi, data[W])) keeps the tail a
pooled quantile reads; an avg of per-series quantiles pulls to the median
series.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015KzRxtgjFfFJeyDy8fN2CB
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