Re: Call for Adoption: Cache Digests for HTTP/2

Mark Nottingham <mnot@mnot.net> Wed, 22 June 2016 07:49 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 868BE12B060 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 22 Jun 2016 00:49:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.347
X-Spam-Level:
X-Spam-Status: No, score=-8.347 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ukr8ZbVSswEd for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 22 Jun 2016 00:48:59 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E69012B054 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 22 Jun 2016 00:48:59 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bFcqK-00075H-Om for ietf-http-wg-dist@listhub.w3.org; Wed, 22 Jun 2016 07:45:00 +0000
Resent-Date: Wed, 22 Jun 2016 07:45:00 +0000
Resent-Message-Id: <E1bFcqK-00075H-Om@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <mnot@mnot.net>) id 1bFcqF-00074W-Uc for ietf-http-wg@listhub.w3.org; Wed, 22 Jun 2016 07:44:55 +0000
Received: from mxout-07.mxes.net ([216.86.168.182]) by lisa.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <mnot@mnot.net>) id 1bFcqD-0000M3-Fh for ietf-http-wg@w3.org; Wed, 22 Jun 2016 07:44:54 +0000
Received: from [192.168.1.101] (unknown [120.149.194.112]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id EC3C722E1F3; Wed, 22 Jun 2016 03:44:28 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CABkgnnUcc99_=8fE+MDcBVF_FsOPdW0-eKTR=oBQ7Hz3vtT06A@mail.gmail.com>
Date: Wed, 22 Jun 2016 17:44:26 +1000
Cc: HTTP Working Group <ietf-http-wg@w3.org>, Natasha Rooney <nrooney@gsma.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <3E0549B9-8A6B-4759-B772-96024FD25033@mnot.net>
References: <040BA5C3-6CA3-4183-9B33-20D8F7A5CA16@mnot.net> <CABkgnnUcc99_=8fE+MDcBVF_FsOPdW0-eKTR=oBQ7Hz3vtT06A@mail.gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
X-Mailer: Apple Mail (2.3124)
Received-SPF: pass client-ip=216.86.168.182; envelope-from=mnot@mnot.net; helo=mxout-07.mxes.net
X-W3C-Hub-Spam-Status: No, score=-8.3
X-W3C-Hub-Spam-Report: AWL=1.321, BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1bFcqD-0000M3-Fh a0577c1375485d73ddb83a2b9cc07b66
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Call for Adoption: Cache Digests for HTTP/2
Archived-At: <http://www.w3.org/mid/3E0549B9-8A6B-4759-B772-96024FD25033@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31749
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

> On 22 Jun 2016, at 5:26 PM, Martin Thomson <martin.thomson@gmail.com> wrote:
> 
> I think that we should adopt this.
> 
> But yikes, it got complicated while I wasn't looking.  FOUR flags,
> none of which are very well justified in the text.  The implications
> of those aren't very well explored either; does this mean that there
> are multiple Bloom filters?  How do these flags interact?  Simple
> example: what do I do with the contents of a frame that has the RESET
> flag?

You clear any state you have for the origin and then process the digest in the frame. If that isn't clear (and it *should* be when reading "Client Behavior"), it's easy enough to fix.

Regardless, the flags are all about the semantics of the digest itself; 
 - If STALE is false, it's fresh in cache, and no push is necessary for matching URLs
 - if STALE is true, they're stale, and matching URLs need to get something pushed
 - if VALIDATORS is true, it indicates that ETags were used to compute the hashes, so the server can decide to push 304 or 200 for a STALE hit
 - COMPLETE lets the client indicate to the server that what it's sent to date represents everything in cache for the origin, so it knows it can make decisions about pushes confidently
 - RESET allows state management.

There are a bunch of different ways to factor those, and personally I'm happy to talk through the different designs. Part of the reason for the flexibility is that it's not yet clear what patterns clients will want to send digests in, and what will be most useful to servers (in terms of fresh, stale, complete or not, etc.). I'm hoping the WG discussion will draw that out.

> That needs some significant work.  I'm sure that there are reasonable
> reasons for each of these, but given that I was concerned that it was
> too complicated to implement in the original form, this really steps
> it up a notch.

What made you think it was too complicated originally?

One thing that I'd like to see feedback from client (browser and otherwise) vendors is whether the overhead of generating a digest at the beginning of each connection (and it has to be then, if you want the digest to be complete and to cover both fresh and stale cache entries) is a concern.


> 
> On 22 June 2016 at 07:52, Mark Nottingham <mnot@mnot.net> wrote:
>> <https://tools.ietf.org/html/draft-kazuho-h2-cache-digest-01>
>> 
>> This draft has been discussed both out in the community and at our meetings, and there seems to be a decent amount of interest in it. So, this is a Call for Adoption to add it to our set of working documents.
>> 
>> Please state whether you support adoption, and ideally why. Expressions of interest in implementation would also be very helpful.
>> 
>> We'll wait at least one week before making a decision.
>> 
>> N.B. Because I'm co-author on the draft, Natasha Rooney has kindly agreed to judge consensus on the CfA, and act as Document Shepherd if we do adopt it.
>> 
>> Cheers,
>> 
>> 
>> --
>> Mark Nottingham   https://www.mnot.net/
>> 
>> 

--
Mark Nottingham   https://www.mnot.net/