ROOTRACE 2.0 · The Performance Courtroom

ROOTRACE — The AI That Must Prove Its Fix.

A model proposes. Real experiments challenge it. A fixed statistical rule, not the model, decides.

Download & verify evidenceJudges' review
  • Incident 1 · N+1 queries≈201×H1 VERIFIED in the warm regime (95% CI 176–224×, n=15). Cold process: about 2×, shown too.Measured · local
  • Incident 2 · missing index≈4.1×I1 VERIFIED locally (95% CI 3.5×–4.8×, n=15); repeated in three runs.Measured · local
  • Wrong fixRejectedThe incorrect index candidate on order_id was INCONCLUSIVE (0.91×, interval includes 1.0). Plausible, but not proven.Measured · local
  • Independent verification3 checksOutput must equal the baseline; Mann–Whitney U with Holm correction; evidence files frozen by SHA-256 you can re-check here.Reproducible
  • Historical live AI evidence · Incident 1 hypotheses: one recorded real Nemotron call via Nebius (2026-09-19)
  • Recorded replay · earlier Nebius sandbox race, evaluator v1
  • Measured · local · all timings on this page, not a Nebius run
  • Live run: none · the end-to-end live workflow was not executed
  1. 1Performance problemA slow query or endpoint.
  2. 2Nemotron hypothesisIncident 1: a recorded real Nemotron call. Incident 2: an audited catalogue.
  3. 3Safe experimentEach fix raced on identical state, raw timings kept.
  4. 4Independent verificationOutput equality, Mann–Whitney + Holm, 2.0× rule, SHA-256.
  5. 5Evidence-backed verdictVERIFIED, INCONCLUSIVE or NOT TESTED.

What kind of evidence is this?

  • LIVEnone on this pageProduced by a real Nemotron and/or Nebius call during this session. None is shown today: a live run needs owner approval and a spend alert.
  • MEASURED · LOCALshown on this pageTimed by this repository's code on the machine named in the evidence. No model call, not a Nebius run. Raw samples are included and re-checkable.
  • RECORDED REPLAYshown on this pageA frozen file from an earlier real run, replayed from disk. The page runs nothing.
  • SIMULATEDnone on this pageScripted model reply and emulated sandbox provider (see /judges). Not shown on this page.

The five verdicts

  • VERIFIED

    Output identical to baseline, statistically significant after Holm correction, and at least 2.0x faster.

  • INCONCLUSIVE

    Output identical, but the evidence does not meet the pre-registered win rule. Not a proven win and not a proven loss.

  • REGRESSION

    Output identical, but the whole 95% interval of the speed ratio is below 1.0: the candidate was slower.

  • INVALID EVIDENCE

    The candidate's output differed from the baseline (or was never compared). Its timings are discarded.

  • NOT TESTED

    No audited experiment exists for this hypothesis, or its precondition was absent. Nothing was run.

  • The model proposes; it never decides.
  • A candidate is VERIFIED only if its output equals the baseline, its Holm-adjusted p is below 0.01 and its median speed-up is at least 2.0x.
  • Hypotheses outside the audited catalogue, or whose precondition is absent, are NOT TESTED.

Two independent incidents

Incident 1 · N+1 query fanout

201×VERIFIED

H1: 340 ms → 1.69 ms · CI [176.2, 224.1] · n=15 per arm

Incident 2 · missing index

4.1×VERIFIED

I1: 403 ms → 98.6 ms · CI [3.5, 4.8] · n=15 per arm

Same evaluator, same 2.0× threshold, different data, query and mechanism. Incident 2 includes a decoy hypothesis that the evidence did not support.

Incident 1 · N+1 query fanout

customer_summary_slow issues 501 queries per call; customer_summary_fast issues one GROUP BY. Hypotheses H1–H4 come from a recorded live Nemotron call.

MEASURED · LOCAL15 trials per arm · evaluator-v2.0 · baseline median 340 ms

Where the hypotheses came from: Frozen recorded live Nemotron output (evidence/live-smoke-test.hypotheses.json, 2026-09-19, nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B via Nebius Token Factory); this race itself called no model.

H1

VERIFIED

Excessive per-call query fanout due to per-customer fetches

Mechanism:
customer_summary_slow issues a separate query for each of the 501 customers, resulting in 501 queries per call and heavy client-side loop overhead
What was actually run (direct):
query fanout eliminated via a single GROUP BY query (customer_summary_fast)
baseline340 ms
H11.69 ms

Bars use a log scale; the numbers are the medians.

speed ratio 200.74× · 95% CI [176.17, 224.07] · Holm p 1.02e-5

Output identical to baseline: yes · ratio recomputed in your browser from the raw samples: matches

evaluator verdict: SUPPORTED

H2

INCONCLUSIVE

High JSON serialization and network overhead per query

Mechanism:
each of the 501 queries returns a small JSON response that must be serialized and transmitted, inflating total latency
What was actually run (proxy):
per-row Python object construction cost, with query count held fixed at the observed 501 queries per call
baseline340 ms
H2324 ms

Bars use a log scale; the numbers are the medians.

speed ratio 1.05× · 95% CI [0.90, 1.16] · Holm p 8.61e-1

Output identical to baseline: yes · ratio recomputed in your browser from the raw samples: matches

Predicted at least 2.0x; the measured interval is below that and includes no meaningful gain.

evaluator verdict: FALSIFIED

H3

INCONCLUSIVE

Missing index causing slow query execution on the database side

Mechanism:
the individual per-customer queries likely scan large portions of the underlying table repeatedly, leading to high execution time per query
What was actually run (direct):
per-query execution cost with an index on orders.customer_id, fanout unchanged
baseline340 ms
H3340 ms

Bars use a log scale; the numbers are the medians.

speed ratio 1.00× · 95% CI [0.86, 1.10] · Holm p 8.61e-1

Output identical to baseline: yes · ratio recomputed in your browser from the raw samples: matches

Predicted at least 2.0x; the measured interval is below that and includes no meaningful gain.

evaluator verdict: FALSIFIED

H4

NOT TESTED

Thread pool saturation from launching many concurrent queries

Mechanism:
spawning 501 queries per call may saturate the application's thread pool or executor, causing context‑switch overhead and higher latency
What was actually run (precondition):
concurrent/thread-pooled query dispatch

Nothing was measured for this hypothesis.

Precondition check found no thread-pool or async primitives in the incident code, so the mechanism is absent. No experiment was run.

evaluator verdict: NOT_APPLICABLE

Proof bundle

evidence/incident1-v2-warm-container-001.race-evidence.json
sha256 9ef78a767b860d8c73a37de8081e9b2070197a95d91b2e10543dde0a4a399fbf (26,326 bytes)

The frozen original contains local file paths, so it is not published. A path-redacted public copy is: same numbers, raw samples and verdicts; 4 path strings replaced by a placeholder.

public copy sha256 b87e1e429fb3f31448ac1178eb90b05b65a948f1bc45381c4e489afe3777aa64 (24,044 bytes)
frozen original sha256 9ef78a767b860d8c73a37de8081e9b2070197a95d91b2e10543dde0a4a399fbf

Download public copy (JSON)

The original's hash is checked offline in the repository: python scripts/verify_frozen_evidence.py and sha256sum evidence/incident1-v2-warm-container-001.race-evidence.json.

Offline re-check: sha256sum <file> must print the SHA-256 shown above; the stored raw samples reproduce every ratio on this page

Incident 2 · missing index

200 point lookups on customer_id against a 1,000,000-row table that has no index. Candidates are two audited CREATE INDEX statements; one is a deliberate decoy on a column the query never filters on.

MEASURED · LOCAL15 trials per arm · evaluator-v2.0 (unchanged) · baseline median 403 ms

Where the hypotheses came from: Audited catalogue (incidents/missing_index.py). Not model output: no Nemotron call has been made for incident 2.

I1

VERIFIED

Point lookups on customer_id perform a full table scan.

Mechanism:
Add an index on orders(customer_id) so each lookup probes instead of scanning.
What was actually run (direct):
CREATE INDEX idx_orders_customer ON orders(customer_id)
baseline403 ms
I198.6 ms

Bars use a log scale; the numbers are the medians.

speed ratio 4.09× · 95% CI [3.49, 4.83] · Holm p 6.78e-6

Output identical to baseline: yes · ratio recomputed in your browser from the raw samples: matches · one-off setup (index build): 564 ms, not in the timings

evaluator verdict: SUPPORTED

I2

INCONCLUSIVE

The orders table lacks an index on its primary-looking column.

Mechanism:
Add an index on orders(order_id). The lookup query does not filter on order_id.
What was actually run (decoy (plausible but wrong column)):
CREATE INDEX idx_orders_order ON orders(order_id)
baseline403 ms
I2443 ms

Bars use a log scale; the numbers are the medians.

speed ratio 0.91× · 95% CI [0.84, 1.15] · Holm p 6.19e-1

Output identical to baseline: yes · ratio recomputed in your browser from the raw samples: matches · one-off setup (index build): 351 ms, not in the timings

evaluator verdict: FALSIFIED

Index build time is reported per candidate (setup_ms) and is not part of the per-trial timings.

Proof bundle

evidence/incident2/incident2-container-001.race-evidence.json
sha256 5a59359f31a5de777f7abbbffce257a6daba82fcce912d9b1b5e3edbc7782f0f (5,763 bytes)

Download evidence JSON

Offline re-check: python scripts/verify_incident_evidence.py <file>

Earlier live-Nebius race (recorded)

rootrace-nebius-live-race: baseline p50 287 ms → winner p50 13.5 ms, 5 trials, evaluator v1 (no correctness gate, no Mann-Whitney, no Holm).

The only historical race on live Nebius sandboxes. n=5 and evaluator v1, so under the v2 rules it can be shown but cannot carry the VERIFIED label. sha256 3dc1a0e12565b520…

Live Nemotron → Nebius run

NOT RUN. The supervised live chain needs the owner's explicit approval for the model call and for sandbox spend. Until it has run, nothing on this page is labelled LIVE.

Limitations

  • Incident timings were taken in a 2-CPU Linux development container, not on Nebius. Absolute milliseconds are not portable; the ratios are what the controls support.
  • Each incident was measured in one or two runs of 15 trials per arm. This is evidence, not a benchmark suite.
  • No live Nemotron or Nebius call has been made for incident 2. The end-to-end live chain remains NOT RUN.
  • The two historical A/A campaigns failed their acceptance rule; measurement stability across machines is not established.
  • Cold-process measurement (each trial a fresh process) compresses incident 1 to about 2x because cold start dominates; the warm in-process regime gives about 200x. Both are shown.