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 <[email protected]>:
> 
>                 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

Reply via email to