Skip to content

feat(eval): accuracy-vs-cost Pareto sweep (Fig 1, real Google trace) - #491

Merged
zzylol merged 1 commit into
mainfrom
feat/pareto-sweep
Jun 12, 2026
Merged

zzylol merged 1 commit into
mainfrom
feat/pareto-sweep

Conversation

@zzylol

@zzylol zzylol commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Fig 1 headline on the real 2019 Google cluster trace. cost = 0.5·(cpu_norm+wire_norm) vs raw=1.0 (both sub-axes reported); fresh backend per arm; accuracy = 1−p99-rel-err vs true quantile.

point p cost ×raw accuracy rel-err
raw 1.000 1.000
sketch 1.0 0.449 0.997 0.31%
sketch 0.5 0.406 0.997 0.31%
sketch 0.25 0.390 0.977 2.28%
sketch 0.1 0.371 0.958 4.22%

DDSketch warm answers p99 at 0.45× raw / 0.997 acc; sampling → 0.37× (2.7× cheaper) at ≥0.96. Wire egress cut ~44×; then CPU-dominated, p↓ trims it (admitted 4928→486 pts/s).

Honest negative: delta does NOT cut wire on this pooled-tumbling/always-changing trace (independent windows, no redundancy) — the delta/ε-gate regime is DEBS (PR #490). Driver+plot+RESULTS under datasets_eval/google_cluster/e2e/pareto/.

🤖 Generated with Claude Code

One combined single-pass sweep on the 2019 Google cluster trace
(data_plane backend + otel-app SDK-sketch producer, fresh backend per
arm) producing (cost, accuracy) operating points for the Fig 1 headline.

  y = 1 - p99 rel-err of quantile_over_time(0.99, cpu_rate[30s]) vs the
      exact pooled true p99.
  x = total cost = 0.5*(edge CPU cores + wire KB/s), each normalized to
      raw-forwarding = 1.0 (both sub-axes reported; backend CPU excluded
      and stated). wire metered via iptables on OTLP dport 4317; edge CPU
      via /proc utime+stime.

Frontier: raw (1.0,1.0) -> DDSketch full p=1 (0.45x, acc 0.997) ->
sampling p down to 0.37x raw (2.7x cheaper) with acc >= 0.96. Wire alone
is cut ~44x. Sampling's measured lever is edge CPU + ingest (10x fewer
admitted points at p=0.1); the ε_s tail (p<=0.25) is kept, not hidden.

Honest negatives recorded in RESULTS.md: delta/ε_cdm does NOT cut wire on
this pooled-tumbling trace (independent windows -> no cross-window
redundancy; first-window-full dominates a short pass), unlike the
synthetic slowly-changing workload in evaluation-plan-figures.md Table 2.

Driver (pareto_sweep.py) + plot (pareto_plot.py) + PNG + raw JSON +
RESULTS.md. Sweep cleans up all procs/ports/iptables on exit (verified 0
left).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@zzylol
zzylol merged commit 92e9687 into main Jun 12, 2026
@zzylol
zzylol deleted the feat/pareto-sweep branch June 12, 2026 21:22
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