Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

incrementally indexed headers should be inserted in index '0' instead of len(table)+1 #233

Closed
grmocg opened this issue Aug 14, 2013 · 9 comments

Comments

@grmocg
Copy link
Contributor

grmocg commented Aug 14, 2013

Currently, index 0 is the 'top' of the table, and when a new header is added using incremental indexing, it is added at the 'bottom' (i.e. the highest number index).

This is potentially problematic from a compression-efficacy standpoint-- data analysis shows that newly added items are the most likely to be reused or removed from the reference set, and thus most likely to be referred to again.

This implies that we should change the spec to insert headers inserted via incremental indexing into position '0' (i.e. the top)

@jpinner
Copy link

jpinner commented Aug 14, 2013

Does this also imply that eviction should occur from the "bottom" of the table?

@grmocg
Copy link
Contributor Author

grmocg commented Aug 14, 2013

eviction from the bottom == oldest entry dies first when all one is using is incremental indexing.

With substitution indexing, that isn't true. I'm happy with either one, but I imagine that Herve might prefer one over the other.

@grmocg
Copy link
Contributor Author

grmocg commented Aug 14, 2013

And I'm fine with either, because I intend to only do incremental indexing, since my research as shown it to be as good or better than substitution (at least so far), and because I know that incremental indexing is suitable to use in a world where we have something like TCP-minion or SCTP doing out-of-order-delivery without HOL blocking at the compressor (with a couple of small modifications).

@jpinner
Copy link

jpinner commented Aug 14, 2013

Does the small modification require you to expose the sequence number?

@grmocg
Copy link
Contributor Author

grmocg commented Aug 14, 2013

Precisely!

@jpinner
Copy link

jpinner commented Aug 14, 2013

An argument to drop substitution indexing from the spec?

@grmocg
Copy link
Contributor Author

grmocg commented Aug 14, 2013

Thusfar, we're assuming TCP transport, and I can imagine that substitution has the capacity to help out there, but not on substrates like TCP-Minion, SCTP, etc. On those transports substitution indexing probably hurts more than it helps.

@martinthomson
Copy link
Collaborator

Interesting discussion. Please continue on-list :)

@martinthomson
Copy link
Collaborator

Discussed in Seattle: we will make this change.

hruellan pushed a commit that referenced this issue Oct 15, 2013
Change the location of inserting and removal of headers into the header
table.
grmocg pushed a commit that referenced this issue Oct 16, 2013
…ing/adding new entries.

Removed more references to substitution indexing
Changed 'initial headers' to 'static headers', as per issue #258
Merged 'request' and 'response' static headers, as per issue #259
Changed text to indicate that new headers are added at index 0 and expire from the largest index, as per issue #233
Further clarifications to how eviction works #238
martinthomson added a commit to martinthomson/http2v2 that referenced this issue Apr 27, 2021
xml2rfc is overly pedantic about non-ASCII text.  The result in this
case was that Hervé's name was being mangled to include a literal
`&httpwg#233;`, even in a text format (where HTML character references make no
sense).  To avoid that, this is what is necessary.  Of course, this
makes the rendering of the document with the RFC Editor stylesheet look
awful.  I've decided not to concern myself with that part though; the
stylesheet we use is fine.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants