Re: HTTP/3 Prioritization: kickstarting the discussion (again)

Patrick Meenan <patmeenan@gmail.com> Wed, 03 July 2019 16:29 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 4250A120425 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Jul 2019 09:29:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.749
X-Spam-Level:
X-Spam-Status: No, score=-2.749 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 4Y8xvR3Q1E38 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Jul 2019 09:29:43 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 144A912032C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 3 Jul 2019 09:29:43 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1hii6v-0000kf-Er for ietf-http-wg-dist@listhub.w3.org; Wed, 03 Jul 2019 16:27:57 +0000
Resent-Date: Wed, 03 Jul 2019 16:27:57 +0000
Resent-Message-Id: <E1hii6v-0000kf-Er@frink.w3.org>
Received: from mimas.w3.org ([2603:400a:ffff:804:801e:34:0:4f]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <patmeenan@gmail.com>) id 1hii6t-0000ju-Vl for ietf-http-wg@listhub.w3.org; Wed, 03 Jul 2019 16:27:56 +0000
Received: from mail-io1-xd30.google.com ([2607:f8b0:4864:20::d30]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <patmeenan@gmail.com>) id 1hii6r-0003RO-4B for ietf-http-wg@w3.org; Wed, 03 Jul 2019 16:27:55 +0000
Received: by mail-io1-xd30.google.com with SMTP id e3so5838308ioc.12 for <ietf-http-wg@w3.org>; Wed, 03 Jul 2019 09:27:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5baDFtOl/etVpfzPu423iUqWyDXc/fpnFc5bWUewppw=; b=WJVhR2ypTtTOPO99O3DzxoYCD/8Ty7meRL0siegtNTFwt8IoSJpx1a48XP0eGBxeOs MmJNe/cZIt50s8MebbRKTC8OqUu2pzDHwyDdc5SRFhIksbscZhOJr+PcCdj3qyc45xE8 TS5RUp0+grcz9HZLDH4rRVZKNk8v2FErkECWF3R/Qbg0lW5qfpA6fk7A+BsCC/AfIowK 1GqKSTodQN1A/tP0kCJ9nBTXr6y3Lcxpybv9pAyc5Ryd+hHY9i5gHWziO8jaqpzqCHVV 2EuMqYqItQ27WGz8MzNYvPReu5qBv6YDi+6m5L7ttEYDvxcRXhDHf0bSM2uA9xYF+Jkf QGQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5baDFtOl/etVpfzPu423iUqWyDXc/fpnFc5bWUewppw=; b=T71GIyHfZRQQBNK3n4Y9g6y5Dw+dydkq18Qda3Qj12YO9h1oTQwbdsIp/pWcR0cynN +y9Y7DA9h9NQ0f9YadnmlPrFF2xixv8jZlIrdQYlD21RTifA7I70cS7yLQrjJiMJIW/c Y999Ta/w8d4+oLaffXfM9sUYbNwySSfpSTG7Mfns2GobsD6mo5r4mZj6+i/QET2w/N0L xXjdMyFJLCN0OJ1W8exkex7Q3duWbB8uQZxfNbXKimrNjIPbARHNxmvlVrWaVDYMbt+6 SeoyYOPBBTDc9AajsIc/S11mCRgQzdwXQk1OFUY2faq7xN16qgd6dGtPloUvmb6gr45e YvtQ==
X-Gm-Message-State: APjAAAVAtAKO6+7nAt19R34suJF4r4QJCWe1zQ3qW+zLqkefQvvB1MYP AdtAFqM0ApPBOhlLfq9ed3eqgVdzGS2U9qYoi1Q=
X-Google-Smtp-Source: APXvYqx7W1mV46Jd1GYNuo45b/PxzYEsbpIsK7NvjzwECbXG4oR5r58KJB1s7ZDePvdtK7YBsFD9EUJiiuDWKxzJwko=
X-Received: by 2002:a6b:38c3:: with SMTP id f186mr39117287ioa.187.1562171252110; Wed, 03 Jul 2019 09:27:32 -0700 (PDT)
MIME-Version: 1.0
References: <CAC7UV9YW5xFc+C28QtLBfDOPcLZ+DEViR__GRuc9Kx8GhUaYOg@mail.gmail.com>
In-Reply-To: <CAC7UV9YW5xFc+C28QtLBfDOPcLZ+DEViR__GRuc9Kx8GhUaYOg@mail.gmail.com>
From: Patrick Meenan <patmeenan@gmail.com>
Date: Wed, 03 Jul 2019 12:27:20 -0400
Message-ID: <CAJV+MGxBwsm1N9UsSQQihBk8o1FYcObOObGkneSr3QN3tqWqoA@mail.gmail.com>
To: Robin MARX <robin.marx@uhasselt.be>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="0000000000008f862a058cc956f2"
Received-SPF: pass client-ip=2607:f8b0:4864:20::d30; envelope-from=patmeenan@gmail.com; helo=mail-io1-xd30.google.com
X-W3C-Hub-Spam-Status: No, score=-2.8
X-W3C-Hub-Spam-Report: AWL=1.333, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1hii6r-0003RO-4B 9f9b064358cc87ca56568a6ef33f5c07
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/3 Prioritization: kickstarting the discussion (again)
Archived-At: <https://www.w3.org/mid/CAJV+MGxBwsm1N9UsSQQihBk8o1FYcObOObGkneSr3QN3tqWqoA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/36746
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: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I don't know if we want it as an explicit goal but one of the main reasons
for my initial alternative proposal was that it is stateless which makes it
easier for application logic outside of the connection-owning code to
reason about and influence prioritization. That can always be handled by a
translation from something proprietary into a tree at the actual connection
but having both sides speak the same stateless model makes it a lot
cleaner.

On Wed, Jul 3, 2019 at 12:11 PM Robin MARX <robin.marx@uhasselt.be> wrote:

> Hello everyone,
>
> As I expect most of you know, there has been quite a bit of talk over at
> the QUIC / HTTP/3 working group recently on what to do with the dependency
> tree / prioritization system from HTTP/2 in H3.
>
> There are two major issues:
> - There a a few subtle HOL-blocking issues in porting the system to H3 due
> to the way streams work in QUIC
> - Quite a few people feel H2's approach is overly complex and can/should
> be simplified
>
> For now, the QUIC wg has taken the stance to try and stay as close to H2
> as possible (e.g., exclusive priorities had been removed before, but are
> now back in the editor's draft of HTTP/3).
> The QUIC wg wishes to see more real implementation experience and
> experimental results for new proposals before considering them. It also
> feels this issue is best discussed in the httpbis wg. And thus we come to
> this email.
>
> We have been recently running some prioritization experiments for a
> variety of schemes and proposals using our own HTTP/3 implementation in the
> Quicker project.
> We have discussed our findings in a paper, which you can find in
> attachment and also on https://h3.edm.uhasselt.be.
>
> The paper attempts to provide a rather extensive discussion of the issues
> with H2's setup, H3's approaches so far and the alternative proposals that
> have been made.
> As I appreciate not everyone has the time to read all of that, our main
> findings are:
>
> 0) The current proposal (which should be "draft-21" soon) for HTTP/3 works
> well in practice, though the semantics of the "orphan placeholder" might
> still need to be tweaked a bit.
>
> 1) Simpler setups are also perfectly viable.. The main contender, from
> Patrick Meenan (
> https://github.com/pmeenan/http3-prioritization-proposal/blob/master/README.md)
> would be a good candidate for this.
>
> 2) However, there is no single scheme that produces ideal results for all
> web pages (e.g., the scheme that is best for page A can perform really
> badly for page B). So dropping everything for a single, simpler approach is
> potentially sub-optimal. Similarly, the current approach of browsers of
> just using a single scheme for all pages might need revision.
>
> 3) Ideally, we should thus allow the scheme to be tweaked per-page, either
> via a mechanism where the server indicates the optimal scheme to the client
> (which we propose in the paper), or where the client communicates
> additional metadata to the server (e.g., resource is blocking/non-blocking,
> can be processed progressively, ...) to make server-side prioritization
> easier (Kazuho Oku is working on a proposal for this, but doesn't feel it's
> ready to share here yet).
>
>  4) In order to make progress on H3, it's probably best to stick with the
> draft-21 approach (potentially with a few more small tweaks) and define a
> new approach as an extension or implement it at the higher HTTP layer
> (i.e., as HTTP headers, rather than H3 frames). However, would that then
> find enough adoption fast enough...
>
> While I'll be the first to admit our study isn't terribly extensive or
> fully realistic (we tested 40 pages in lab settings without a real
> browser), I still feel our results are enough to have a basis to continue
> the discussion on. We of course encourage others to share their results as
> well.
> Some more background information can be found here as well:
> https://github.com/quicwg/wg-materials/blob/master/interim-19-05/priorities.pdf
>
> I'm a bit unsure what the best questions are to ask at this point, but
> some attempts:
> - Are implementers willing to implement 2 completely different approaches
> (1 for H3, 1 for H2)?
> - Are (browser) implementers willing to consider supporting multiple
> schemes (specific trees)?
> - Are (server) implementers willing to create/support more complex
> (user-driven) server-side prioritization config/APIs?
> - How important is it to move to a simpler (and thus less flexible) setup?
> - Should this be a blocker for HTTP/3 or not?
>
> Looking forward to your feedback.
> With best regards,
> Robin
>
> --
>
> Robin Marx
> PhD researcher - web performance
> Expertise centre for Digital Media
>
> T +32(0)11 26 84 79 - GSM +32(0)497 72 86 94
>
> www.uhasselt.be <http://www.uhasselt..be>
> Universiteit Hasselt - Campus Diepenbeek
> Agoralaan Gebouw D - B-3590 Diepenbeek
> Kantoor EDM-2.05
>
>
>