#6238 Improve HTTP/2 flow control defaults - #6240
Conversation
|
can you check what are the defaults in other libraries ? |
checking |
|
@vietj I checked a few other implementations:
Since Vert.x does not currently auto-tune the window, I used a larger static default to avoid repeatedly stalling on 64 KiB updates. The 1 MiB stream window is consistent with gRPC-Java. The 16 MiB connection window was intended to allow several concurrent streams to make progress, but it might be better to use 1 MiB there as well for closer alignment with the other implementations. What do you think? |
vietj
left a comment
There was a problem hiding this comment.
can you also apply this for HTTP client ?
I'll try |
d0ffb3c to
930ab68
Compare
It's done, please review |
Signed-off-by: Arnab Nandy <arnab_nandy7@yahoo.com>
Signed-off-by: Arnab Nandy <arnab_nandy7@yahoo.com>
930ab68 to
f755968
Compare
Motivation:
Large HTTP/2 request bodies, such as 10 MiB+ gRPC unary messages, can be extremely slow because the server uses the HTTP/2 protocol-default 65,535-byte stream and connection flow-control windows.
This change increases the server-side default stream window to 1 MiB and the connection window to 16 MiB, allowing large requests and concurrent streams to make progress with fewer flow-control update cycles. It also documents the distinction between stream-level and connection-level flow control and adds tests for the new defaults.
Client-side defaults remain unchanged.
Fixes #6238
Conformance:
I have signed the Eclipse Contributor Agreement and confirm that this contribution adheres to the Vert.x code style guidelines.