RE: Priority straw man

I also much prefer the former: it is more in the spirit of the proposal, and is much simpler than the later proposal.

However, as Mike said, it makes it hard to insert a new bucket in the middle of the list.
To go from (A, F) <- (B, C, G) <- (D, E)
To (A, F) <- (H) <- (B, C, G) <- (D, E), many re-prioritization are necessary.

I propose to use the reserved flag in the priority information to indicate that a new dependency creates a new bucket.
In this way, to obtain the previous change, it is only necessary to send the dependency H->A with the flag set.

I sent a pull request containing all these changes: https://github.com/http2/http2-spec/pull/375.


Hervé.

> -----Original Message-----
> From: Martin Thomson [mailto:martin.thomson@gmail.com]
> Sent: lundi 3 février 2014 22:06
> To: Mike Bishop
> Cc: HTTP Working Group
> Subject: Re: Priority straw man
> 
> On 3 February 2014 12:57, Mike Bishop <Michael.Bishop@microsoft.com>
> wrote:
> > Your draft has this list of initial dependencies:  (A->0, B->A, C->A, D->B, E->C,
> F->0, G->A).  This creates the ordered list-of-buckets (A,F) <- (B,C,G) <- (D,E).
> That makes sense in terms of building initial priorities.
> >
> > What feels unclear is when a new priority is sent -- what happens when the
> client now sends C->G?
> >
> > I see two reasonable approaches, both of which appear in agreement with
> the text:
> >   - (B,C,G) are a bucket.  Because C now depends on G, C moves to the next
> bucket (of things which depend on the bucket B,G) and the result is (A,F) <-
> (B,G) <- (D,E,C).
> >   - We've previously stated E->C, and nothing has changed that dependency.
> The result is (A,F) <- (B,G) <- (D,C) <- (E).
> >
> > Neither interpretation is entirely satisfying.  The first could require many
> PRIORITY frames to perform an insert in the list, but the second feels
> suspiciously like a tree, which you explicitly said it wasn't.
> 
> Excellent point.  I think that the former is more in keeping with the
> original intent.  I will add some text on reprioritization to cover
> this, including the case where moving C empties the bucket.

Received on Tuesday, 4 February 2014 17:31:23 UTC