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

Alcides Viamontes E <alcidesv@zunzun.se> Wed, 22 June 2016 08:32 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 6FB7C12B054 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 22 Jun 2016 01:32:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.346
X-Spam-Level:
X-Spam-Status: No, score=-8.346 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=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
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=zunzun-se.20150623.gappssmtp.com
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 9cCwWlbCh6vl for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 22 Jun 2016 01:32:48 -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 ADEB812B00B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 22 Jun 2016 01:32:48 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bFdWo-00083T-Ey for ietf-http-wg-dist@listhub.w3.org; Wed, 22 Jun 2016 08:28:54 +0000
Resent-Date: Wed, 22 Jun 2016 08:28:54 +0000
Resent-Message-Id: <E1bFdWo-00083T-Ey@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 <alcidesv@zunzun.se>) id 1bFdWi-00082f-8T for ietf-http-wg@listhub.w3.org; Wed, 22 Jun 2016 08:28:48 +0000
Received: from mail-oi0-f42.google.com ([209.85.218.42]) by lisa.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <alcidesv@zunzun.se>) id 1bFdWa-0001yd-Uv for ietf-http-wg@w3.org; Wed, 22 Jun 2016 08:28:46 +0000
Received: by mail-oi0-f42.google.com with SMTP id f189so11614505oig.3 for <ietf-http-wg@w3.org>; Wed, 22 Jun 2016 01:28:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zunzun-se.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ByF5BEqoEo1TQHnNq9/09zwr5RS7vMVMaGlqIy9RN3Q=; b=nBrsfkbPJ2ZNbuAlV1UPE5momlJGI0Tv+jEHhSkrfRMiXSSLV5QHYfGxp5fUDPoyz6 XIGslarT6yeAnNhk/N7YWsWdvHWARNrshgv/OXIp1DPft6Sx02AGknV6Zb3uzqb6gjUV TSFytCTcA+jMaTa77612jAbWeDWXn4P9QzmzZagU/cWrVQKhnhPxFFkPeYiN82Di5Gjh XDxB66pdEM79L4v4lm6Gt1n3ArW6R/zF59v/haZkqSeqrqMtF4bQgr7Uc3KRtPZo/qbm nFpJJPSvUYT1p2TRtCTgTW0hrBpa+NXv7UpA7+srJc0X7l5WyfPwpPEp+pMfhcPjJlTn Nmug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ByF5BEqoEo1TQHnNq9/09zwr5RS7vMVMaGlqIy9RN3Q=; b=W+PswHI5cqEk6tI5F1hKDymcy4PMUjoLgyfrB2IDNB1i9YS3TR7Lo8wtB8B46apvLS jGrYXOe0tsCFKkgcnHBGGBjzAKyzGM9J4NjKHWHWBwoc84WWIdHeUGjxmCrw+Da4g4Sz YmMm0ZlrUyZWTR312yWTdbmo7a8AvKigUjWyag+Ms6MXZohkKcEIaeNlIX2IuqxAQT5H EZoYBk87wnJgmq/slB7+XxxRCZwYuRVh8Q3iAqlDrMPPtNxHxlEjqDmAbDqb6ATkfHZp LAkycLaQlkNht0l29WDrMfZEr4y5gRjtp3vz9UCuGGJpt7GvIC1wvorKhBsIAJYoqoMT 7Vrg==
X-Gm-Message-State: ALyK8tIrvCCCxGI9oQ9N60SxNBq4kd1d/79KzSioqip7/FyH8CwjpQjYbyBDl5qN7m9V/DY7hKwhVU1n8GkdjA==
X-Received: by 10.157.41.204 with SMTP id g12mr944341otd.68.1466584094162; Wed, 22 Jun 2016 01:28:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.175.214 with HTTP; Wed, 22 Jun 2016 01:28:13 -0700 (PDT)
In-Reply-To: <040BA5C3-6CA3-4183-9B33-20D8F7A5CA16@mnot.net>
References: <040BA5C3-6CA3-4183-9B33-20D8F7A5CA16@mnot.net>
From: Alcides Viamontes E <alcidesv@zunzun.se>
Date: Wed, 22 Jun 2016 10:28:13 +0200
Message-ID: <CAAMqGzbnd9=YJ39sU8K7it-q_Tigw9F7rLOSewMGYL7d1FYFaQ@mail.gmail.com>
To: Mark Nottingham <mnot@mnot.net>
Cc: HTTP Working Group <ietf-http-wg@w3.org>, Natasha Rooney <nrooney@gsma.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="001a113dd774f752e10535d9b76c"
Received-SPF: pass client-ip=209.85.218.42; envelope-from=alcidesv@zunzun.se; helo=mail-oi0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-5.4
X-W3C-Hub-Spam-Report: AWL=-0.818, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1bFdWa-0001yd-Uv 5599678c4db1c7c92c21e4140c54bb6a
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/CAAMqGzbnd9=YJ39sU8K7it-q_Tigw9F7rLOSewMGYL7d1FYFaQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31750
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>

Hello,

I'm sorry to have to intervene now, since as part of a publicly financed
project my company is trying to build forecasts on how cache digests would
work in practice. We are extrapolating data from a few scanned websites.
The goal is to get likely bounds for the sizes of cache digests.

We also have some data from using a cookie implementation of cache digests
in ShimmerCat that follows this draft closely. We are satisfied with how it
works but we have identified a few things that can be improved.

We expressed some of our concerns in January, and we are glad to see that
some of them have been addressed, i.e. the inclusion of validators.

A further concern was scoping: as it stands now, the only scoping mechanism
for digests is to use different origins.

This is bad for several reasons. AFAIK, sites don't have either a way to
ask the browser to prematurely evict an expired representation that the
browser would otherwise consider fresh. These two things together could
allow a cache digest to grow indefinitely. Wouldn't that have a degrading
effect on performance?

We turn on cache digests during development, and we have seen the cache
digests grow due to the accumulation of different versions of assets.
Because we are using a cookie implementation, we can have the server reset
the cookie when it gets too big. Would that be possible  with the current
draft?

Also related to scoping is the following. Cache digests have been devised
so far for a single HTTP/2 Push use scenario: pushing a few assets which
are critical to the first render of a page. For that scenario, it is a good
idea to keep the digests short. In other words, to not include all assets
from the origin that the browser has in cache. Scoping is good here! But
there are other HTTP/2 Push scenarios. PUSH_PROMISEs can be sent later on
the lifetime of a connection. Since HTTP/2 recommends to not bundle assets,
HTTP/2 Push is also handy to push hierarchies of small Javascript modules.
Digests are also useful here, but with different assets than the digests at
the beginning of a site fetch.

Another concern we expressed on January was that digests as an HTTP/2 frame
are something that suits well large and well-equipped infrastructure
operators but that becomes almost invisible and hard to debug for web
developers and sysadmins with less resources. However we can swipe that
concern under the rug by hoping that browser tooling will catch up
eventually.

Another concern we expressed on January was that there was no way to switch
off the digest frame. All in all, we think that the current draft is a
really good step, and we understand that it doesn't need to be perfect. But
if it is not going to be good enough for all scenarios, it would be nice if
it can be switched off. Since digests are only used from the second visit
to a site, the browser could just remember some hint from the site on
previous visits and abstain from using digests.

For what it counts, and in short, here is our response to the call for
adoption:

- Should be this draft adopted in its current form?:    No.

- What would be the minimum requirement to revert that response?: A way to
switch off digests, so that operators opting for different implementations
don't need to pay for it.



On Wed, Jun 22, 2016 at 8:52 AM, 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/
>
>
>