httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Eissing <stefan.eiss...@greenbytes.de>
Subject Re: H2 stream dependencies
Date Fri, 20 Nov 2015 09:26:19 GMT
Bert,

interesting and nice to see the progress. You probably could use priorities for ordering,
especially when using the stream dependencies. I am not certain, however, if this will give
you totally deterministic behavior. If stream B depends on A, usually A will be sent out before
B. However, should stream A become suspended - e.g. unable to progress, either because there
is no data available which some other thread needs to produce, or because the flow control
window has not been updated in time - the server will start sending data for B.

The state of the implementation is:
2.4.17: fully implemented priority handling on sending stream data, as implemented by the
nghttp2 library
2.4.18: additionally, streams are scheduled for execution by priority. Makes a difference
when the number of available worker is less than the stream queue length, e.g. when der server
is under load or only few workers are available (in prefork, for certain).

Another way to influence the ordering is for the client to play with the stream window sizes.
If you give stream A 2^31-1 and stream B 0 until you have A, then update B, it may also do
what you want. If both streams produce response bodies...flow only applies to DATA...

Cheers,

  Stefan

> Am 20.11.2015 um 00:17 schrieb Bert Huijben <bert@qqmail.nl>:
> 
>                 Hi All (and Stefan in particular),
>  
> As already noted I’m trying to make Subversion work over http/2 via the Apache Serf
library. Today I made a few huge steps forward and got most of the Subversion tests working
over h2. (Just +- 60 failures left of the +- 2000 tests)
>  
> One particular problem that remains is that we have some code that assumes some related
responses are delivered in strict order. This code worked for many releases, so there is not
much I can change on the information needed, without adding features that only work in future
Subversion versions.
>  
> In theory I should be able to get exactly the behavior I want by adding priority information
to my h2 requests… but I don’t know if httpd is ready to process that information in a
way that would help us.
> (Currently I just ignore all this in my implementation… as will at least some other
implementations)
>  
> Can somebody give me an update on what the current status of priority handling in httpd
is? (trunk vs 2.4.17)
>  
> Thanks,
>                 Bert


Mime
View raw message