Re: Priority signals in HTTP/2

Robin MARX <robin.marx@uhasselt.be> Fri, 18 December 2020 10:11 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 2B4263A11FB for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 18 Dec 2020 02:11:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.747
X-Spam-Level:
X-Spam-Status: No, score=-2.747 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uhasselt.be
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 OGSFIX0UtWCG for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 18 Dec 2020 02:11:03 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (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 129CD3A11FA for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 18 Dec 2020 02:11:02 -0800 (PST)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1kqCgG-0000Yz-Qs for ietf-http-wg-dist@listhub.w3.org; Fri, 18 Dec 2020 10:08:12 +0000
Resent-Date: Fri, 18 Dec 2020 10:08:12 +0000
Resent-Message-Id: <E1kqCgG-0000Yz-Qs@lyra.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <robin.marx@uhasselt.be>) id 1kqCgF-0000W5-6N for ietf-http-wg@listhub.w3.org; Fri, 18 Dec 2020 10:08:11 +0000
Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by titan.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from <robin.marx@uhasselt.be>) id 1kqCgC-0000jJ-En for ietf-http-wg@w3.org; Fri, 18 Dec 2020 10:08:10 +0000
Received: by mail-wr1-x435.google.com with SMTP id y17so1494976wrr.10 for <ietf-http-wg@w3.org>; Fri, 18 Dec 2020 02:08:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uhasselt.be; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7e1qaTk+2JCJSnDuBcY/dX0GogQ0Pb3XHKBqa3TNfEU=; b=EmUuzh8uww28DqOyZ0ckANrhZ0cPhpJCWHAE3L/Sq9ns9JBQZxun+bYeVWHYtRg3TO d42MII1n0YU5pYCSgHvc2ltYXtxGK1Ia/DoS/MV4uLWzQoE2+RGHITrWbxnW8uzZXslX c581rtAU9ZU9AdH/HE3zaqCY1CmlaUCpY2Nqk=
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=7e1qaTk+2JCJSnDuBcY/dX0GogQ0Pb3XHKBqa3TNfEU=; b=d9VAE5jngiKrpCDbwMdNhxlpzNRGJZ73IfDuCK59kTZr0PDANX3JiFmlwTEVnr0L4O 4rVpyb8Y5+DXEOyWy+Vq7qdNE8KBFUANBtkPiMw1oAXzaSjdW4b+NsKIY+ZfjvYv8jz8 ctpCDeQtbrz/EsAXT+qdd51a1B3hHCJCiXfPVm92Yj9AduEKNpQW2dyCwvUm8XuANZsZ YBFrB+8r383j5afgr5D2DHaih6pof0l9/nfc+2mvFmjRVz5LfqW/uRGo4dWYg7p/5jDv fnn7/ASMzdcunAh9PzaXUK5KZDhcxnpOmTl5u6XdV66yKxG1Mx7JtJ4VYfL6w879mGxs Nhlw==
X-Gm-Message-State: AOAM5321xErxvcUc/9CeSCfKOK6Liuyap6JPmLUVp75oMWs93bNKGcvg 1r1+IihbGQITdLaJ2HovSPeh7wmEywEyr5lpJ4mA6F2JhkdjTA==
X-Google-Smtp-Source: ABdhPJxU34K3UffKNdBTgX7MzxvZ58ZJN6YP0Qzpv1LUYgorWybGk1e4I5WOA2lqcjPpUnJWOktvL4jD2rs/CGu3POY=
X-Received: by 2002:a05:6000:143:: with SMTP id r3mr3491146wrx.331.1608286075701; Fri, 18 Dec 2020 02:07:55 -0800 (PST)
MIME-Version: 1.0
References: <32bc8d5e-23c9-412e-84a5-5f153e827c33@www.fastmail.com> <CAH_hAJFK_pRTBCbQKvs6hiHQERG7nHBb+KDpuLX9FFLRYO1SAQ@mail.gmail.com>
In-Reply-To: <CAH_hAJFK_pRTBCbQKvs6hiHQERG7nHBb+KDpuLX9FFLRYO1SAQ@mail.gmail.com>
From: Robin MARX <robin.marx@uhasselt.be>
Date: Fri, 18 Dec 2020 11:07:44 +0100
Message-ID: <CAC7UV9a1uen8dRt-gMBBSXQEKeF47P8xH4KaM4NPbhG9PH7uLg@mail.gmail.com>
To: Cory Benfield <cory@lukasa.co.uk>
Cc: Martin Thomson <mt@lowentropy.net>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="0000000000003d624d05b6ba4833"
Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=robin.marx@uhasselt.be; helo=mail-wr1-x435.google.com
X-W3C-Hub-Spam-Status: No, score=-4.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: titan.w3.org 1kqCgC-0000jJ-En ed7004ebde036494d72fa4492966ed30
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Priority signals in HTTP/2
Archived-At: <https://www.w3.org/mid/CAC7UV9a1uen8dRt-gMBBSXQEKeF47P8xH4KaM4NPbhG9PH7uLg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/38323
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>

Hello all,

I too feel this is a reasonable approach, with two remarks on two of your
points:

4. Since the new signaling system is intended to be HTTP/2 compatible and
also has quite a bit of text on this, I feel this would indeed make sense
(for reference: [1])

5. I wonder if it's useful to recommend different default priorities here.
In RFC 7540, the default is fully fair Round Robin, which has been shown to
be one of the worst case scenarios for typical web page traffic.
    A more sequential default would fit better in this case. For example,
this could become "All streams are initially assigned an exclusive
dependency on the currently active stream with the highest stream ID".
    This is identical to the default behaviour in the new signaling system
and conceptually similar to Chromium's setup.
    I'm not sure this is really necessary, but if there's one thing I'd
change about H2's setup, it's that.
    It might be good to include this guidance for implementers who will
start integrating the new signaling and want to minimally update existing
code for clients that stick to the old system for the time being.

With best regards,
Robin

[1]: https://tools.ietf.org/html/draft-ietf-httpbis-priority-02

On Fri, 18 Dec 2020 at 10:37, Cory Benfield <cory@lukasa.co.uk> wrote:

> I think this looks like a reasonable approach to me.
>
> On Fri, 18 Dec 2020 at 02:26, Martin Thomson <mt@lowentropy.net> wrote:
> >
> > Now that we're official, I'd like to get started on some of the more
> difficult pieces: priority.
> >
> > I wrote up a proposed plan for dealing with the priority signaling in
> RFC 7540 here:
> https://github.com/httpwg/http2-spec/issues/773#issuecomment-725285414
> >
> > What do people think about this general approach (quoting):
> >
> > 1.    Cut the section with the detailed explanation and replace it with
> some explanatory text about the importance of having prioritization in a
> multiplexed transport (though not necessarily signaling thereof).
> >
> > 2.    Explain that this document used to define a priority signaling
> scheme, but that the one that was defined was unsuccessful.
> >
> > 3.    In that section recommend against using the priority signaling
> scheme from RFC 7540, but explain that other endpoints that you talk to
> might send these frames.
> >
> > 4.    Point to the new signaling system if that is mature enough (and
> probably even if it is not).
> >
> > 5.    Suggest, but not recommend, that servers pay attention to priority
> signals using these old mechanisms in the absence of other signals. This
> might take a little careful wording, but it's probably enough to caution
> that ignoring signals might degrade performance and some signals might be
> better than none. Point to RFC 7540 for the details of how the old scheme
> works.
> >
> > 6.    Leave the definition of the frame type intact, but cut the
> definitions right down to just the necessary pieces sizes, names, and any
> mandatory processing (error handling, sizes, ranges, the hard stuff). This
> should ensure that people are able to do things like generate the right
> error codes and skip over the HEADERS frame pieces properly.
> >
> > 7.    Leave text about when PRIORITY can be sent in the state machine.
> This is important for interoperating with endpoints that generate the frame.
> >
> >
> >
>
>

-- 

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
Universiteit Hasselt - Campus Diepenbeek
Agoralaan Gebouw D - B-3590 Diepenbeek
Kantoor EDM-2.05