Skip to content

feat: experimental setup for paper submission - #907

Open
milindsrivastava1997 wants to merge 20 commits into
mainfrom
codex/random-e2e-batch
Open

milindsrivastava1997 wants to merge 20 commits into
mainfrom
codex/random-e2e-batch

Conversation

@milindsrivastava1997

Copy link
Copy Markdown
Contributor

No description provided.

milindsrivastava1997 and others added 20 commits October 15, 2026 01:29
random_workload_batch.py runs every arm of the given workload sets on a
cluster, one job per two-node slot, longest first; cleans a slot's nodes
before each job, retries a failed job once under a new name, writes a
compare_arms summary per workload (ClickHouse+MV as the reference), and
keeps its state on disk so a restarted driver resumes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On resume, a job whose run is still alive is left alone (orphaned)
instead of rerun, and --skip-slots keeps the driver off busy nodes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
collate_batch.py writes one row per (set, workload, arm): CPU, memory,
latency p50/p95/sum, failed queries, the feeder's ingest lag, and whether
the run is valid (no failed queries, answers agreeing with Prometheus).
It reports each baseline's ratio to ASAPQuery over valid pairs.
plot_cost_latency.py draws p95 latency against total CPU per set, invalid
runs hollow. compare_arms now reports failed queries instead of crashing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… each scatter

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…chosen arms

The raw table's label-first order made every query read the whole table.
The batch driver can rerun some arms under a name tag and from a config
variant directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It cleaned and reused them, wrecking the runs still going there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cost-latency plot

Also a figure title, thicker axes, and "total compute cost" on the y axis.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
random_workload_artifacts.py --dashboards K writes <workload>-dashK/ run
configs with every query group repeated K times (e2e, VictoriaMetrics,
ClickHouse and ClickHouse+MV), on the same plan, feeder and data. Each copy
is its own client group and thread, so copies are issued concurrently and
their latencies recorded apart.

The query client's connection pool now fits every query in flight; the
default 10 would open a new connection per excess request at K >= 2.
collate_batch.py collates batches of an arm subset, against ClickHouse+MV
when Prometheus didn't run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A workload table's gauge can carry recorded values (values.replay), which the
feeder loops one step per sample in place of generated ones. make_replay.py
fits Alibaba v2022 pod CPU into the random workloads' label shape and writes
such a table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panel subtitles drop the workload set name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…etheus and ClickHouse

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… first

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Frozen for seed 862 with saved plans for all ten workloads, for a
cardinality point between base and x5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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