Skip to content

docs(eval): plan the end-to-end evaluation (paper §6.2) - #862

Open
zzylol wants to merge 7 commits into
mainfrom
docs/e2e-eval-plan
Open

zzylol wants to merge 7 commits into
mainfrom
docs/e2e-eval-plan

Conversation

@zzylol

@zzylol zzylol commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Evaluation plan for the paper's end-to-end section, docs/evaluation/end-to-end-eval.md, in the style of #777.

  • Workloads: §6.3's mixed (classic, 46 PromQL queries) and all (mixed plus 52 multi-grouping SQL queries). The RQEs in sketch-bench's tables are the workload.
  • Systems: ASAPQuery (running the §6.3 planner's plan via --planner saved), Prometheus, VictoriaMetrics, ClickHouse, ClickHouse + exact MVs. One CloudLab node per system, identical data from the paced feeder.
  • Rate: 1/20 of §6.3's, 10 samples/s per series. The plans are re-solved at that rate (§6). Every classic RQE is still served. In all, two template-16 5m RQEs fall below the accuracy curves and are dropped.
  • Metrics: CPU, memory, latency and saved results per system. Cost uses the planner's definition (cost by use, cpu weights and Fargate prices). Output is a cost–latency scatter, the paper's speedup table, and ASAPQuery's measured cost against the plan's prediction.
  • Time: ≈ 2.3 days on the five c6320 nodes. Each workload needs ≈ 26 h, because the 24 h windows have to fill before they answer.
  • What's left (§11), open questions (§12) and blockers (§13). The main blocker is planner: MILP plan → InferenceConfig should use ReadBased cleanup instead of NoCleanup #800: MILP output uses NoCleanup, so ASAPQuery keeps every window during the 25 h runs.

Related: #777 (§6.3 plan), #789 (data plane vs ClickHouse plan), #861 (no query timeouts on the baselines), #840–#845, #841.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae

zzylol and others added 5 commits October 13, 2026 17:57
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnJ7LocWxguh3q4QWkCYae
| ClickHouse | 26.10 | SQL with Prometheus 2.53 semantics ([#844](https://github.com/ProjectASAP/ASAPQuery/issues/844)) | `INSERT … RowBinary` from the feeder | `experiment_run_clickhouse.py` (live feed: to do, §11) |
| ClickHouse + MV | 26.10 | SQL over exact materialized views, bucket = T ([#845](https://github.com/ProjectASAP/ASAPQuery/issues/845)) | same, views created before data | same, `baseline_mv` arm |

PilotDB (the AQP comparison in the paper) is out of scope here; it needs its

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok to be out of scope here. Just mentioning that, I can just use the SQL queries and feeder from here for that too. Just to get consistent results. ALready have results from it on alibaba

| System | Version | Queries | Data path | Runner |
|---|---|---|---|---|
| ASAPQuery | `main` + this plan's PRs | PromQL (classic); SQL frontend (multi-grouping) | remote write from the feeder | `experiment_run_e2e.py` with `controller.prebuilt_output_dir` ([#828](https://github.com/ProjectASAP/ASAPQuery/issues/828), [#841](https://github.com/ProjectASAP/ASAPQuery/issues/841)) |
| Prometheus | 2.53.2 (bare metal) | PromQL | remote-write receiver | `experiment_run_e2e.py` ([#841](https://github.com/ProjectASAP/ASAPQuery/issues/841)) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how difficult would it be to add promsketch+prom?

The baselines keep their whole history on disk and can answer any range.
ASAPQuery keeps sketch windows instead, in two tiers ([#800](https://github.com/ProjectASAP/ASAPQuery/issues/800)):

- **Memory: CircularBuffer.** Each aggregation keeps its last

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI, there is a bug in ASAPQuery with the CircularBuffer policy (basically counting how many summary instances should stay in memory), which is why I changed it to NoCleanup for now. Can estimate memory from offline sketch-bench runs.

Comment thread docs/evaluation/end-to-end-eval.md Outdated
|---|---|---|
| Re-plan at 10/s, build, verify | < 1 h | 1 |
| Pilot | ≈ 2 h | 5 |
| mixed: 24 h fill + 1 h measure + ≈1 h setup | ≈ 26 h | 5 (ASAPQuery, Prometheus, VictoriaMetrics, ClickHouse, ClickHouse + MV) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have 10 c6320 nodes (+ allocating 3 more) if those help

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.

2 participants