- From: Roberto Peon <grmocg@gmail.com>
- Date: Thu, 24 Jul 2014 10:57:34 -0700
- To: Mike Bishop <Michael.Bishop@microsoft.com>
- Cc: Poul-Henning Kamp <phk@phk.freebsd.dk>, Martin Thomson <martin.thomson@gmail.com>, Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>, Mark Nottingham <mnot@mnot.net>, David Krauss <potswa@gmail.com>, Greg Wilkins <gregw@intalio.com>, HTTP Working Group <ietf-http-wg@w3.org>, Michael Sweet <msweet@apple.com>, Jason Greene <jason.greene@redhat.com>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
- Message-ID: <CAP+FsNd3y6D0VkrdqJJMwocKo3s9N2BC4w=sVrdwB_sjr0SO7w@mail.gmail.com>
Also, the more opcodes, the smaller the space left over for indices is, and thus the compressor becomes less efficient. I'd expect having a compressor which wants to clear the dynamic table is a relatively rare occurrence. Sacrificing bytes in the common case for this rare case would be counter productive. -=R On Thu, Jul 24, 2014 at 10:54 AM, Mike Bishop <Michael.Bishop@microsoft.com> wrote: > Basically, if an compressor wants to clear the dynamic table, it can just > stop using it and discard the actual data from memory. It can either > maintain enough bookkeeping data to track expiration of the items (whatever > they were), or it can encode a size of zero followed by a non-zero size > which frees it from bookkeeping as well (and frees the memory on the peer). > An opcode that was just a shortcut for reduce to zero, then increase to > the current value doesn't seem like it adds much to this direction, though > it wouldn't hurt much either. > > The more common case that was raised for wanting to clear the dynamic > table, though, was the decompressor -- it can't clear it without notice to > the other side like the compressor can. That's why it sends SETTINGS to > zero and then back. There's no opportunity for an opcode to flow in this > direction. > > So why no opcode? Superfluous in one direction and not (cleanly) an > option in the other. > > -----Original Message----- > From: Mike Bishop > Sent: Thursday, July 24, 2014 10:29 AM > To: 'Poul-Henning Kamp'; Martin Thomson > Cc: Tatsuhiro Tsujikawa; Mark Nottingham; David Krauss; Greg Wilkins; HTTP > Working Group; Michael Sweet; Jason Greene; Roberto Peon; Ilari Liusvaara > Subject: RE: Recovery from decompression failure (was: Re: Cost analysis: > (was: Getting to Consensus: CONTINUATION-related issues)) > > There's no opcode because it's the compressor who wants (wanted) to clear > the reference set since they know that what they're encoding will be > quicker if the set is gone, but it's the decompressor that wants to clear > the dynamic set to reduce its memory commitment. (The compressor can > partially discard the contents of the dynamic table any time it wants > without need to notify the other side it has done so.) > > There are no HPACK opcodes sent from decompressor to compressor, unless > you want to mix information across the two directions. That seems like > even more of a complication to me. SETTINGS and the corresponding ACK are > effectively the communication channel from decompressor back to the > compressor. > > -----Original Message----- > From: Poul-Henning Kamp [mailto:phk@phk.freebsd.dk] > Sent: Thursday, July 24, 2014 7:35 AM > To: Martin Thomson > Cc: Tatsuhiro Tsujikawa; Mark Nottingham; David Krauss; Greg Wilkins; HTTP > Working Group; Michael Sweet; Jason Greene; Roberto Peon; Ilari Liusvaara > Subject: Re: Recovery from decompression failure (was: Re: Cost analysis: > (was: Getting to Consensus: CONTINUATION-related issues)) > > In message < > CABkgnnV82KWYVzHKNzFH7fXp4hZoC7vsqGsJcPDRep-O1qKuQQ@mail.gmail.com> > , Martin Thomson writes: > > >Yes, I would use SETTINGS ACK as the marker to use for trimming the > >header table down, but still require the next header block after that > >to include a context update. That might mean two rounds of eviction if > >the encoder chooses to use a smaller table size, but that's the safest > >approach. > > The safest and by far most efficient approach is to have an oopcode for it. > > Why that was felt necessary for the reference set but not for the dynamic > set is a good question. > > Resizing the dynamic set to zero and then back up invites the receivers to > complicate their memory management because the most likely resize of the > dynamic set isn't going to be one. > > -- > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe > Never attribute to malice what can adequately be explained by incompetence. > >
Received on Thursday, 24 July 2014 17:58:02 UTC