- From: Roberto Peon <grmocg@gmail.com>
- Date: Sat, 21 Sep 2013 13:11:02 -0700
- To: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
- Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
- Message-ID: <CAP+FsNdbtcq1Z3L_vmtfsVs26uhduccoVs3W44Zcf7hXi3yEkA@mail.gmail.com>
When I was doing a similar comparative analysis, I found that incremental indexing did better than substitution indexing as well. I suspect that substitution indexing benefits strongly from heuristics, e.g. compute the probability that a header is reused and use that to determine if you replace or not. That being said, I'm still unsure if the complexity of substitution indexing is worth the potential benefit. -=R On Sat, Sep 21, 2013 at 5:12 AM, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>wrote: > I made a simple benchmark test for substitution indexing vs > incremental indexing only and share its results here. > > The detailed results can be found at > https://github.com/tatsuhiro-t/nghttp2/wiki/hpackSubst > > """ > HPACK draft offers 2 kind of indexing methods: incremental and > substitution. In nghttp2, we always use incremental > indexing. This is because we do not have good strategy to use > substitution indexing efficiently. We suspect that it is in the > draft because it has some use cases, but we don't see them yet. > > So we did some tests comparing our incremental only strategy and > the experimental strategy utilizing substitution indexing. > > Our incremental only strategy goes as follows: > > 1. If the name/value pair is in the header table, use indexed > representation. > > 2. Else, if name is in the header table, use incremental indexing > with indexed name. > > 3. Else, use incremental indexing with new name. > > The experimental strategy utilizing substitution indexing changes > step 2 as follows: > > 2. Else, if name is in the header table, substitute that entry; > use substitution indexing with indexed name. > > We use data set in https://github.com/http2/http_samples. > > The detailed results are listed in the following sections. > > The end result is that, in the overall, incremental only strategy > is more efficient than the strategy with substitution. But the > difference is not so large. On some data set, the substitution > performed well, so depending on the data set, the winner may > change. Also there may be better strategy for substitution. > """ > > It turns out that the experimental strategy is used in node-http2 > and firefox. > >
Received on Saturday, 21 September 2013 20:11:29 UTC