docs(research): record POC-3 outcome — phase 0 gates all pass
- pocs.md: POC-3 marked complete/proceed with result summary; sequencing status updated - alk-stack.md: verify item 2 (HTTP smart protocol shape) resolved, pointing at poc3-findings.md
This commit is contained in:
1 parent
8ef833430e
commit
70815e22a0
2 files changed
+18
-2
No files matched your search
@@ -87,6 +87,13 @@ door produced the stream.
|
||||
2. **HTTP smart protocol shape**: confirm alkhttp's streaming response body
|
||||
can carry a pack (chunked) and that request bodies stream in without
|
||||
buffering the whole POST in memory (receive-pack can be gigabytes).
|
||||
**Verified (POC-3, 2026-09-21)**: real git 2.43 clones/fetches
|
||||
fsck-clean over `Connection → HttpAdapter → axum custom routes`;
|
||||
request bodies stream (`BodyDataStream`, one hyper-read chunk per
|
||||
`poll_next` — measured with a dribble probe and git's forced-chunked
|
||||
POST path); pack responses stream under back pressure (bounded mpsc →
|
||||
`Body::from_stream`, O(counts) RSS on a 60k-object clone). See
|
||||
`poc3-findings.md`.
|
||||
3. **alkcall backpressure/limits vs git sessions**: large clones are
|
||||
long-lived, high-throughput, single-direction streams; confirm channels
|
||||
buffer limits (ADR-040) don't fight pack streaming, or route git sessions
|
||||
|
||||
+11
-2
@@ -81,6 +81,15 @@ whole pack in memory for large repos — record memory behavior for a
|
||||
|
||||
## POC-3: smart-http shape through alkhttp
|
||||
|
||||
**Status**: complete (2026-09-21) — **proceed**. See `poc3-findings.md`.
|
||||
Real git 2.43 clones/fetches/tag-checkouts over `http://` through the full
|
||||
alkcall → alkhttp path (`Connection::from_bidi(http/1.1)` → `HttpAdapter`
|
||||
→ axum custom routes); request bodies stream (measured via dribble probe +
|
||||
git's forced-chunked path), pack responses stream under back pressure with
|
||||
O(counts) memory on a 60k-object clone. Key protocol correction: http V2
|
||||
responses end at the flush — the `0002` response-end pkt is synthesized by
|
||||
the client's transport helper, never sent on the wire.
|
||||
|
||||
**Hypothesis**: alkhttp can serve `GET /info/refs` and stream a POST body
|
||||
(ingest without full buffering) for `git-receive-pack`.
|
||||
|
||||
@@ -99,8 +108,8 @@ POC-1 first (the BiStream/packetline fit is the load-bearing assumption).
|
||||
POC-2 next (the crux of fetch). POC-3 last (http shape). Each POC updates
|
||||
the corresponding research doc with results and a proceed/pivot/block note.
|
||||
|
||||
**Status**: POC-1 and POC-2 complete and proceed; POC-3 is the remaining
|
||||
gate for phase 0 completion.
|
||||
**Status**: POC-1, POC-2, and POC-3 complete and proceed — phase 0 gates
|
||||
all pass.
|
||||
|
||||
## Modes applied to these POCs
|
||||
|
||||
|
||||
Reference in new issue
Block a user