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

Capping Header Compression Index Values #155

Closed
jasnell opened this issue Jul 1, 2013 · 0 comments
Closed

Capping Header Compression Index Values #155

jasnell opened this issue Jul 1, 2013 · 0 comments

Comments

@jasnell
Copy link
Contributor

jasnell commented Jul 1, 2013

When using Literal Representations with Incremental Indexing as defined by the current Header Compression draft, a long lived connection could potentially end up with rather large table index values... Specifically, every Literal-with-Incremental causes the table index to increment by one monotonically without limit. Index positions are represented using a variable length integer syntax that has no upper limit, as the index position increases, the number of bytes necessary to represent the index on the wire increases. The result is that as the number of Literal-with-Incremental operations increase, the efficiency of our compression will slowly but certainly decrease.

The solution, of course, is to favor substitution indexing as much as possible within long running connections.

One possible strategy is to use incremental indexing only until a fixed range of index positions have been used (1...n). After that range has been exhausted, use substitution indexing starting back from the initial position in the range... Where this strategy might become unworkable, however, is when items within that fixed range are evicted. It is currently not clear in the header compression draft whether a Literal-with-Substitution-Indexing is allowed to reuse an index position that has previously been evicted.

@jasnell jasnell closed this as completed Jul 3, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant