DescriptionQUIC - add instrumentation to HPACK.
Measure delta between time of creation and use for dynamic table entries.
This instrumentation is help sanity check a proposed scheme to eliminate
HPACK induced HOL blocking in QUIC. The hypothesis is that most indexed
representations occur some non-negligible time after the entries are
added to the table in the first place. This is somewhat implied by data
that shows 98% of QUIC sessions do not experience HOL blocking. If data
from this new instrumentation shows the hypothesis false, then the
proposed scheme is not sound. [ Note that the opposite inference is not
assumed. ]
This change introduces |HpackHeaderTable::DebugVisitorInterface|
that surfaces dynamic table events with |OnNewEntry()| and
|OnUseEntry()|, plumbed via |SpdyFramer| to
|QuicHeadersStream|. Generic timekeeping code isn't available
between chromium and the internal codebase, but QUIC code has
|QuicTime| which is available both codebases. So the new
DebugVisitorInterface uses int64_t as opaque time type, which is
marshalled to/from |QuicTime| in |QuicHeadersStream|, the actual
timekeeping lives on the QUIC side, and uses existing |QuicTime|
and |QuicClock| facilities. |QuicHeaderStream::HpackDebugVisitor|
wraps HHT:DVI providing a |OnUseEntry(QuicTime::Delta elapsed)|
time suitable for use in tests and the followup change that will
do UMA logging (https://codereview.chromium.org/1987913002/).
Merge internal change: 122853032
BUG=
Committed: https://crrev.com/ff8d65d99ceb8cb9e19c29281defdeffb0a389fa
Cr-Commit-Position: refs/heads/master@{#395160}
Patch Set 1 #Patch Set 2 : try to fix mock decl for windows compile #Patch Set 3 : another try to fix windows compile #Patch Set 4 : and again windows #Patch Set 5 : I think I've done this already... #Patch Set 6 : rebase update #Patch Set 7 : really really rebase update #Patch Set 8 : C4373 - don't mix const and call by value #Patch Set 9 : update from internal review #Patch Set 10 : changes from internal review #Patch Set 11 : rebase-update #
Dependent Patchsets: Messages
Total messages: 15 (8 generated)
|