swift-server / swift-server/async-http-client

allow control over the inbound HTTP/2 flow control window

Open
#568 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/enhancement
Dominant language
Swift
Stars
1.1k
Forks
156
PR merge metrics
No merged PRs in 30d

Description

For best bulk transfer rates, it'd be great to control the HTTP/2 flow control window. Right now, I think we leave the defaults which are (IIRC) 64k per connection and 64k per stream. That means the server can't send a huge amount of data especially under a lot of concurrent streams. Also, we'll need to send a large number of WINDOW_UPDATE frames to up the flow control windows all the time.

Thank you to @Lukasa for reminding me that I want this when we were chatting about bulk H2 data transfer with AHC.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file, test, or entry point is named in the issue. Start by locating the HTTP/2 flow-control handling in async-http-client and SwiftNIO, then define how callers should configure connection and stream windows; done means configurable inbound windows reduce unnecessary WINDOW_UPDATE frames during bulk transfers.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.