Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Issue 246383003: HPACK: Refactor and expand HpackHeaderTable indexing. (Closed)

Created:
6 years, 8 months ago by Johnny
Modified:
6 years, 7 months ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, jshin+watch_chromium.org
Visibility:
Public.

Description

HPACK: Refactor and expand HpackHeaderTable indexing. HpackHeaderTable now maintains indices for querying static and dynamic entries by name and name & value. Indicies are ordered on entry name, value, then table index. A full-table index is maintained, as well as a reference-set index. HpackEntry no longer tracks reference-set status (that's HpackHeaderTable's job), and the "touch" mechanism has been replaced with a similar "state". HpackHeaderTable & HpackEntry also now cooperate to provide HpackEntry with sufficient bookmarking to compute it's own index. HpackEncodingContext has been eliminated. HpackHeaderTable manages its former responsibilities (primarly managing the static table). Together, these changes allow an encoder to: * Build the encoding delta via a linear walk through (just) the reference set (assuming headers are already sorted, ala std::map). * Map representations to entries in O(log(N)) time, preferring the lowest-index entry. * Determine a mapped entry's index in O(1) time. * Add and evict representations to the dynamic table in O(log(N)) time. * Efficiently enumerate all headers having a specific name. Not required now, but may be in the future. This lands server change 65185410 by jgraettinger. BUG=339578

Patch Set 1 #

Patch Set 2 : Add NET_EXPORT_PRIVATE on HpackEntry::Comparator #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1046 lines, -1099 lines) Patch
M net/net.gypi View 2 chunks +0 lines, -3 lines 0 comments Download
M net/spdy/hpack_decoder.h View 4 chunks +6 lines, -5 lines 0 comments Download
M net/spdy/hpack_decoder.cc View 7 chunks +57 lines, -42 lines 0 comments Download
M net/spdy/hpack_decoder_test.cc View 7 chunks +7 lines, -21 lines 0 comments Download
M net/spdy/hpack_encoder.h View 2 chunks +0 lines, -2 lines 0 comments Download
D net/spdy/hpack_encoding_context.h View 1 chunk +0 lines, -124 lines 0 comments Download
D net/spdy/hpack_encoding_context.cc View 1 chunk +0 lines, -234 lines 0 comments Download
D net/spdy/hpack_encoding_context_test.cc View 1 chunk +0 lines, -220 lines 0 comments Download
M net/spdy/hpack_entry.h View 1 1 chunk +62 lines, -55 lines 0 comments Download
M net/spdy/hpack_entry.cc View 1 chunk +60 lines, -53 lines 0 comments Download
M net/spdy/hpack_entry_test.cc View 1 chunk +130 lines, -110 lines 0 comments Download
M net/spdy/hpack_header_table.h View 1 chunk +97 lines, -29 lines 0 comments Download
M net/spdy/hpack_header_table.cc View 1 chunk +254 lines, -50 lines 0 comments Download
M net/spdy/hpack_header_table_test.cc View 1 chunk +373 lines, -150 lines 0 comments Download
M net/spdy/hpack_output_stream.h View 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 2 (0 generated)
Johnny
6 years, 8 months ago (2014-04-22 17:11:48 UTC) #1
Ryan Hamilton
6 years, 8 months ago (2014-04-22 17:30:52 UTC) #2
lgtm

Powered by Google App Engine
This is Rietveld 408576698