Re: Consequences of removing the reference set

On Thu, Jul 24, 2014 at 8:07 AM, Martin Thomson <martin.thomson@gmail.com>
wrote:

> We have some artifacts in HTTP/2 that were as a consequence of having
> the reference set.
>
> I have opened a pull request to remove those artifacts, and to add a
> new requirement to have pseudo-header fields appear first.  This is
> something that we all agreed would be good, but we couldn't do with
> HPACK in its previous form.
>
>   https://github.com/http2/http2-spec/pull/568
>
> This change does the following:
>
> * remove the requirement to concatenate with '\0'
> * require pseudo-header fields to all appear before regular header fields
> * change 'header set' to 'header list'
>
> Please comment if you think that these changes are inappropriate.
>
>
Despite what the text said, there was never a requirement to use '\0' to
preserve ordering (and there was a section near the top saying how to
accomplish ordering). It exists solely to allow ordering to be done
efficiently, as the alternate mechanism would have required more bytes.

In other words, one could always have accomplished ordering (of any kind)
by emitting up-to two references to each item explicitly.

Now, since we don't have the reference set, the use of merging values with
'\0' is more important, since the number of key-values has a direct
relationship to the inefficiency of the compressor.
I don't believe this part has been discussed on list yet; taking this part
out (so we can discuss it separately) would probably be good.
-=R

Received on Thursday, 24 July 2014 17:45:27 UTC