Subject: Question about prioritization state management

From: laike9m <[email-masked]>
Date: Tue, 29 Nov 2016 16:27:42 +0000

I found the example in 5.3.4 Prioritization State Management <http://http2.github.io/http2-spec/index.html#priority-gc> very confusing.

In the previous paragraph, it says

Resources are shared between streams with the same parent stream, which means that if a stream in that set closes or becomes blocked, any spare capacity allocated to a stream is distributed to the immediate neighbors of the stream.

And in the following example:

Prior to the removal of stream A, if streams A and D are unable to proceed, then stream C receives all the resources dedicated to stream A.

It seems to me a bit contradictory, since A and B are neighbors with the same parent stream, then why doesn’t B share resources dedicated to A?

I know this question may seem dumb, but I do hope to get answers from the experts. Thank you.

---

From: Benedikt Christoph Wolters <[email-masked]>
Date: Wed, 30 Nov 2016 12:33:37 +0100

2016-11-29 17:27 GMT+01:00 laike9m <[email-masked]>:
> It seems to me a bit contradictory, since A and B are neighbors with the
> same parent stream, then why doesn’t B share resources dedicated to A?

I think the example is correct. A and B are siblings [1], not
immediate neighbors [2].
Note there is an ongoing discussion about that topic [3].

[1] https://en.wikipedia.org/wiki/Tree_structure
[2] https://en.wikipedia.org/wiki/Neighbourhood_(graph_theory)
[3] https://lists.w3.org/Archives/Public/ietf-http-wg/2016OctDec/0601.html