You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While the base HTTP2 server implementation for Netius is developed, a proper support for priorities is still not developed leaving the output channel "unprotected" against large unimportant chunks of data that fill the space of the more important HTML, Javascripts, etc chunks.
Current HTTP2 performance under real browser scenarios is limited by the lack if priority support and the total loading times are often larger than the HTTP1.1 equivalents.
Notes
The delaying of the dependent streams should be performed at two different levels:
CPU/RAM, meaning that the on_data should not be triggered while the stream is not ready
Bandwidth, meaning that no bytes are sent back to the client while the parent streams are not completed or blocked, a delay operation is done on all of the data frames of the stream until the parent frame unblock its task, this may be done by using part of the available_stream/delay_frame implementation
Note that the most important part point is the one about blocking the bandwidth, as that's the most limited resource
Benchmarking
The page loading performance of the Netius HTTP2 server should be equivalent to the one offered by other HTTP2 servers like nghttp2 for that proper comparison must be created.
It has been proved by using an NGINX reverse proxy implementation that its possible to archive better performance using an HTTP2 server than using the same back end with HTTP1 so the priorities should be the answer for that better performance.
Maybe I'll need to get back to the "old" strategy of "marking" the pending frame information as sent so that I can unify the strategy for blocked streams because of connection/stream starvation and blocked streams because of dependencies unmet.
Description
While the base HTTP2 server implementation for Netius is developed, a proper support for priorities is still not developed leaving the output channel "unprotected" against large unimportant chunks of data that fill the space of the more important HTML, Javascripts, etc chunks.
Current HTTP2 performance under real browser scenarios is limited by the lack if priority support and the total loading times are often larger than the HTTP1.1 equivalents.
Notes
The delaying of the dependent streams should be performed at two different levels:
on_data
should not be triggered while the stream is not readyavailable_stream/delay_frame
implementationNote that the most important part point is the one about blocking the bandwidth, as that's the most limited resource
Benchmarking
The page loading performance of the Netius HTTP2 server should be equivalent to the one offered by other HTTP2 servers like nghttp2 for that proper comparison must be created.
References
The text was updated successfully, but these errors were encountered: