W3C home > Mailing lists > Public > ietf-http-wg@w3.org > January to March 2013

Re: Choosing a header compression algorithm

From: Roberto Peon <grmocg@gmail.com>
Date: Fri, 22 Mar 2013 13:45:43 -0400
Message-ID: <CAP+FsNfFohSwrX2DxthNcnn+wDj6T5W7xpcg4yA56Gvt_nP3_Q@mail.gmail.com>
To: RUELLAN Herve <Herve.Ruellan@crf.canon.fr>
Cc: Mark Nottingham <mnot@mnot.net>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Correct, delta2 uses a header group per host, however, the real benefits of
this don't show up with the current streamifier, which removes the
intermingling of requests to different hosts (which is a bit unrealistic,
but does makes the graphs easier to parse visually).
This can end up really mattering to the compression in the cases where
there is some ping-ponging between different host headers.

-=R


On Fri, Mar 22, 2013 at 9:01 AM, RUELLAN Herve
<Herve.Ruellan@crf.canon.fr>wrote:

> The results for HeaderDiff were not at all those I excepted.
>
> I traced the difference to the number of compressor instances used to
> compress the sample files. The framework uses only one instance for all the
> files, while internally I used one instance for each file.
>
> I noticed that the delta2 compressor seems to use one compression context
> for each host. I think this is the correct behavior to obtain realistic
> results. I will therefore update the HeaderDiff codec to create one
> compression context per host.
>
> Hervé.
>
> > -----Original Message-----
> > From: Mark Nottingham [mailto:mnot@mnot.net]
> > Sent: vendredi 22 mars 2013 07:32
> > To: ietf-http-wg@w3.org Group
> > Subject: Re: Choosing a header compression algorithm
> >
> >
> > On 21/03/2013, at 6:11 PM, Mark Nottingham <mnot@mnot.net> wrote:
> >
> > > 1) We need to do apples-to-apples comparison of these compressors to
> > see how they behave under a range of constraints (especially, memory).
> >
> > To this point, a few runs across the header corpus that I collected
> > (http_samples/mnot/*.har), using the current implementations (again, we
> > need to verify these are honouring these limits correctly, and I believe
> > headerdiff is going to be updated):
> >
> > 16384 Byte Buffer
> > ----------------------
> >
> > * TOTAL: 5948 req messages
> >                                         size  time | ratio min   max
> std
> >                          http1     3,460,925  0.22 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=16384)       630,668 15.89 | 0.18  0.03  0.76
>  0.11
> >      headerdiff (buffer=16384)     1,699,918  9.65 | 0.49  0.03  0.90
>  0.21
> >
> > * TOTAL: 5948 res messages
> >                                         size  time | ratio min   max
> std
> >                          http1     2,186,162  0.26 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=16384)       575,345 24.39 | 0.26  0.02  1.06
>  0.12
> >      headerdiff (buffer=16384)       877,106 24.76 | 0.40  0.04  0.93
>  0.14
> >
> > [ Note that the efficiency actually goes *down* on headerdiff for
> requests
> > when the buffer is larger here; Herve, any idea what's happening there? ]
> >
> > 8192 Byte Buffer
> > ----------------------
> >
> > * TOTAL: 5948 req messages
> >                                        size  time | ratio min   max   std
> >                         http1     3,460,925  0.24 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=8192)       646,431 15.78 | 0.19  0.03  0.76
>  0.12
> >      headerdiff (buffer=8192)     1,378,622  6.95 | 0.40  0.03  0.92
>  0.20
> >
> > * TOTAL: 5948 res messages
> >                                        size  time | ratio min   max   std
> >                         http1     2,186,162  0.43 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=8192)       592,260 20.28 | 0.27  0.02  1.06
>  0.12
> >      headerdiff (buffer=8192)       914,362 15.55 | 0.42  0.05  0.93
>  0.14
> >
> >
> > 4096 Byte Buffer
> > ----------------------
> >
> > * TOTAL: 5948 req messages
> >                                        size  time | ratio min   max   std
> >                         http1     3,460,925  0.18 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=4096)       665,642 13.35 | 0.19  0.03  0.77
>  0.12
> >      headerdiff (buffer=4096)     1,406,429  3.92 | 0.41  0.03  0.88
>  0.18
> >
> > * TOTAL: 5948 res messages
> >                                        size  time | ratio min   max   std
> >                         http1     2,186,162  0.21 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=4096)       610,764 15.48 | 0.28  0.02  1.06
>  0.13
> >      headerdiff (buffer=4096)     1,009,185  7.58 | 0.46  0.05  0.93
>  0.13
> >
> > 2048 Byte Buffer
> > ----------------------
> >
> > * TOTAL: 5948 req messages
> >                                        size  time | ratio min   max   std
> >                         http1     3,460,925  0.18 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=2048)       692,579 11.66 | 0.20  0.03  0.77
>  0.12
> >      headerdiff (buffer=2048)     1,632,783  2.94 | 0.47  0.03  0.90
>  0.19
> >
> > * TOTAL: 5948 res messages
> >                                        size  time | ratio min   max   std
> >                         http1     2,186,162  0.20 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=2048)       633,785 12.47 | 0.29  0.02  1.22
>  0.13
> >      headerdiff (buffer=2048)     1,088,829  4.75 | 0.50  0.05  0.93
>  0.13
> >
> > 1024 Byte Buffer
> > ----------------------
> >
> > * TOTAL: 5948 req messages
> >                                        size  time | ratio min   max   std
> >                         http1     3,460,925  0.22 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=1024)       752,380 11.92 | 0.22  0.03  0.84
>  0.13
> >      headerdiff (buffer=1024)     1,700,325  1.82 | 0.49  0.03  0.91
>  0.19
> >
> > * TOTAL: 5948 res messages
> >                                        size  time | ratio min   max   std
> >                         http1     2,186,162  0.23 | 1.00  1.00  1.00
>  0.00
> >   delta2 (max_byte_size=1024)       671,975 11.42 | 0.31  0.02  1.22
>  0.13
> >      headerdiff (buffer=1024)     1,118,599  3.53 | 0.51  0.05  0.93
>  0.13
> >
> > 512 Byte Buffer
> > ---------------------
> >
> > * TOTAL: 5948 req messages
> >                                       size  time | ratio min   max   std
> >                        http1     3,460,925  0.17 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=512)     1,058,090 14.23 | 0.31  0.04  0.83  0.15
> >      headerdiff (buffer=512)     2,120,833  1.43 | 0.61  0.03  0.93  0.16
> >
> > * TOTAL: 5948 res messages
> >                                       size  time | ratio min   max   std
> >                        http1     2,186,162  0.14 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=512)       721,525 12.22 | 0.33  0.03  1.22  0.13
> >      headerdiff (buffer=512)     1,199,608  2.09 | 0.55  0.05  0.93  0.12
> >
> > 256 Byte Buffer
> > ---------------------
> >
> > * TOTAL: 5948 req messages
> >                                       size  time | ratio min   max   std
> >                        http1     3,460,925  0.18 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=256)     1,517,520 18.62 | 0.44  0.04  0.84  0.19
> >      headerdiff (buffer=256)     2,444,376  1.32 | 0.71  0.08  0.95  0.13
> >
> > * TOTAL: 5948 res messages
> >                                       size  time | ratio min   max   std
> >                        http1     2,186,162  0.23 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=256)       856,632 13.21 | 0.39  0.04  1.22  0.14
> >      headerdiff (buffer=256)     1,201,814  1.65 | 0.55  0.05  0.93  0.12
> >
> > 32 Byte Buffer
> > -------------------
> >
> > * TOTAL: 5948 req messages
> >                                      size  time | ratio min   max   std
> >                       http1     3,460,925  0.20 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=32)     2,357,457 28.18 | 0.68  0.51  0.84  0.05
> >      headerdiff (buffer=32)     2,791,039  1.16 | 0.81  0.58  0.96  0.08
> >
> > * TOTAL: 5948 res messages
> >                                      size  time | ratio min   max   std
> >                       http1     2,186,162  0.21 | 1.00  1.00  1.00  0.00
> >   delta2 (max_byte_size=32)     1,197,019 17.92 | 0.55  0.16  0.89  0.07
> >      headerdiff (buffer=32)     1,434,721  1.32 | 0.66  0.19  0.95  0.07
> >
> > [ smaller buffer sizes caused errors in delta2 (at least) ]
> >
> > --
> > Mark Nottingham   http://www.mnot.net/
> >
> >
> >
>
>
>
Received on Friday, 22 March 2013 17:46:12 GMT

This archive was generated by hypermail 2.3.1 : Friday, 22 March 2013 17:46:19 GMT