Skip to content

docs(spike): direct batchexecute read latency vs the browser read (#1225) - #1232

Merged
ffroliva merged 3 commits into
developfrom
docs/1225-read-latency
Nov 10, 2026
Merged

ffroliva merged 3 commits into
developfrom
docs/1225-read-latency

Conversation

@ffroliva

@ffroliva ffroliva commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

Closes #1225
Part of #1229

Assessment (read-only, before the spike): a measurement question, not a bug report. No CLI or MCP surface changes. It is verifiable end to end here: $0, a headed browser on denon82, reads only.

Verdict (pre-registered: cached direct vs warm page, at p50; 5x = worth it, under 2x = not for speed)

p50 wall times, in seconds:

read browser cold browser warm direct fresh direct cached warm/cached cold/fresh
as29s status 8.61 1.92 1.44 0.74 2.6x 6.0x
Zzl0ze listing 7.28 1.20 1.13 0.35 3.4x 6.4x
nzlxg balance 6.77 (n = 9) 0.42 0.92 0.23 1.8x 7.3x
  • Against a warm page, no read reaches 5x.
    • nzlxg (1.8x) is not worth a direct tier for speed alone.
    • as29s and Zzl0ze (2.6x and 3.4x) are worth it only with another reason.
  • That reason is the cold path: a one-shot read pays about 6 s of Chrome start, so direct is 6–7x faster to the reply. The case for the direct tier is "no Chrome per call".

N = 10 per arm, so p95 is the maximum sample; the p95 column is in the doc. One cold nzlxg sample failed with a 30 s or longer timeout and was dropped; one top-up run alone took 6.98 s.

Separate finding (likely a defect, worth its own issue)

Gflow's browser close times out. In 30 of 31 clients the graceful context.close() hit its 30 s bound (_engine._CONTEXT_CLOSE_TIMEOUT_S) before the force-close ran. One real gflow credits user --profile denon82 took 40.4 s of wall time, about 31 s of it closing Chrome.

Not measured

docs/FLOW_WIRE_RPCS.md is not on develop yet (PR #1219), and this spike measures time, not wire shape, so there is no row update.

Also carries 9f356c9d (cherry-picked from the open PR #1215, a test-only CI tz fix).

Gates (local)

  • All ten gates green, including pytest -n 8 --dist worksteal: 6064 passed, 7 skipped.
  • After the last edit: the doc gates, ruff on the script, and tests/scripts (404 passed) were re-run.

)

N=10 per arm on denon82. Cached direct vs warm page at p50: as29s 2.6x,
Zzl0ze 3.4x, nzlxg 1.8x - under the pre-registered 5x, so the direct tier is
not justified by speed against a warm page. Against a one-shot cold Chrome it
is 6-7x to the reply, and the cold client's graceful close hit its 30 s bound
in 29/30 cycles (one real gflow credits call: 40.4 s wall).

Part of #1229.
…ne database

Ubuntu 24.04's tzdata 2026e moves backward links (Atlantic/Faeroe, Portugal,
Eire, Iceland, Poland) into tzdata-legacy, which the CI runners do not install.
ZoneInfo then refuses the alias, consent_region() fails closed, and the
Atlantic/Faeroe row (expected False) went red on every PR, develop included;
the three legacy rows expecting True passed for the wrong reason.

The mapping test now stubs the zone lookup, so every row checks the
name-to-region mapping on any machine. A separate test pins the fail-closed
behaviour for an alias the installed zone database cannot load.

(cherry picked from commit 9f356c9)
…1225)

The verdict rests on the 6-7x cold-to-reply ratio; the ~31 s graceful-close
timeout (30/31 clients) is a separate finding. Cold nzlxg is n=9 (the dropped
sample was a >=30 s timeout) plus one 6.98 s top-up run alone.
@coderabbitai

coderabbitai Bot commented Nov 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 21 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d2a2ec9a-dbf2-45f8-81dc-dbf36f616e00
Commits

Reviewing files that changed from the base of the PR and between ca069fc and 5f42d53.

Files selected for processing: 3

  • docs/superpowers/spikes/2026-11-10-read-latency.md
  • scripts/dev/spike_read_latency.py
  • tests/test_telemetry_notice.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@ffroliva
ffroliva merged commit a17b5d4 into develop Nov 10, 2026
25 checks passed
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.

Spike: latency of a direct read vs the browser read

1 participant