dotnet / dotnet/aspnetcore

Follow up HTTP/2 items

Open
#41,224 3 comments 0 reactions 0 assignees View on GitHub
area-networking
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 10h
Merged PRs (30d)
281

Description

There were a couple of follow up items as a result of changing how HTTP/2 output writing works https://github.com/dotnet/aspnetcore/issues/30235.

- [ ] - We need to follow up on how this affects large writes. There will be a task allocation after 4K writes because the ConcurrentPipeWriter allocates a task per pending write. We might also want to use a bigger pause threshold (65K?)
- [ ] - We need to determine if we want CompleteAsync to not lie and instead wait on the response to be flushed. Right now it lies and queues other operations after the response is completed. This is more efficient but makes it hard to observe exceptions. This would slow down gRPC scenarios a bit more.
- [ ] - Move HPack encoding out of the write lock https://github.com/dotnet/aspnetcore/pull/40925#discussion_r846521398
- [ ] - Write window updates in an async code path (https://github.com/dotnet/aspnetcore/blob/1b02b8549618c0edd7022362617251d9d1c33152/src/Servers/Kestrel/Core/src/Internal/Http2/FlowControl/StreamInputFlowControl.cs#L60 and https://github.com/dotnet/aspnetcore/blob/1b02b8549618c0edd7022362617251d9d1c33152/src/Servers/Kestrel/Core/src/Internal/Http2/FlowControl/StreamInputFlowControl.cs#L93)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.