Repository navigation
Use adaptive HTTP/2 windows for the remote cache connection - #49
Conversation
Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 2
✨ Finishing Touches
Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6824ac2371
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Tiny Sweeper reviewThis pull request tunes the remote cache client's HTTP/2 connection to use adaptive flow-control windows, adding a single builder call on the tonic endpoint and a matching documentation sentence in the remote spec. Review found no defects across the critique, security, tests, commits, and description lanes; the change only alters HTTP/2 flow-control sizing without introducing new input handling, auth changes, network targets, or subprocesses. State: Ready for maintainer review Review snapshot
Completeness: Complete What changedTwo files changed: `crates/tinymold-remote/src/client/mod.rs` adds `.http2_adaptive_window(true)` to the tonic `Endpoint` construction in `Client::new`, with an explanatory comment about hyper's fixed windows versus bandwidth-delay product growth; `docs/specs/remote.md` adds a sentence describing that the connection uses HTTP/2 adaptive flow-control windows so reads from a distant cache are not held to a fixed window per round trip. Features
Tests
FindingsNo active actionable findings. Before mergeNone. Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
Co-authored-by: Medulla <medulla@tinyhumans.ai>
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0006 · 93,284 in / 4,520 out · 9,472 cached (10%) · ladder/vectors-oai3, glm-5.3-flash, deepseek-v4.1-flash · 87 embedded
critique: $0.0003 · 26,907 in / 1,478 out · 0 cached (0%) · glm-5.3-flash
security: $0.0002 · 27,202 in / 1,540 out · 1,792 cached (7%) · deepseek-v4.1-flash, glm-5.3-flash
tests: $0.0000 · 14,120 in / 201 out · 2,176 cached (15%) · deepseek-v4.1-flash
description: $0.0001 · 23,184 in / 680 out · 5,504 cached (24%) · deepseek-v4.1-flash
The remote client kept hyper's fixed HTTP/2 flow-control windows (2 MiB per stream, 5 MiB per connection). Against
grpcs://cache.tinyhumans.aifrom GitHub-hosted runners (~120 ms away), that caps reads at about 5 MiB / 0.12 s ≈ 40 MiB/s per connection, however fast the link is. A warm chottu-core job fetches gigabytes of hits.Endpoint::http2_adaptive_window(true)makes hyper probe the bandwidth-delay product with pings and grow the windows to match.The server side of the same problem (nginx's 64k request-body window, which capped uploads at ~0.5 MiB/s per stream) is fixed in gh-hosted-runner#18.
Behavior change: none beyond flow control: the client may send HTTP/2 BDP pings.
Validation:
cargo fmt --check,clippy -D warnings,test --all-features(exit 0) andcargo doc -D warningsare all clean.Not covered by an automated test:
Endpointexposes no getter for its window settings, and the in-process fake has no latency to show a window limit. The effect will show as fetch throughput in chottu-core's next warm run, which I'll report on the chottu PR. Nobench/bench.pynumbers either: the harness measures local compiles, not WAN transfer.Summary by CodeRabbit