Re: Priority signals in HTTP/2

Lucas Pardue <lucaspardue.24.7@gmail.com> Fri, 18 December 2020 20:24 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 212013A0115 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 18 Dec 2020 12:24:58 -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 (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 weWzddNcng74 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 18 Dec 2020 12:24:56 -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 E4E3A3A00F7 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 18 Dec 2020 12:24:50 -0800 (PST)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1kqMG5-0006P6-Hp for ietf-http-wg-dist@listhub.w3.org; Fri, 18 Dec 2020 20:21:49 +0000
Resent-Date: Fri, 18 Dec 2020 20:21:49 +0000
Resent-Message-Id: <E1kqMG5-0006P6-Hp@lyra.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <lucaspardue.24.7@gmail.com>) id 1kqMG3-0006OL-G8 for ietf-http-wg@listhub.w3.org; Fri, 18 Dec 2020 20:21:47 +0000
Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by mimas.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from <lucaspardue.24.7@gmail.com>) id 1kqMG1-0003VA-DO for ietf-http-wg@w3.org; Fri, 18 Dec 2020 20:21:47 +0000
Received: by mail-ej1-x635.google.com with SMTP id x16so5011540ejj.7 for <ietf-http-wg@w3.org>; Fri, 18 Dec 2020 12:21:45 -0800 (PST)
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=qE7ovm5ajG5pXBUenoqCT/SDW5TjWjqD6tzYJHOPJg0=; b=VKrD79tEJNn7FhlvIU3FsBe6T5vGJzGcX3i+z//UWNWiNIfMcfO4aBsZl2rhcuzjey kp8qlMlqGfrZxn/n1ximZytBLK2eDjIpp7QZ4ZnYxUX1HvqeTQpdTo+Srpcx3jqFCK7X JZr5NMYdLTcs18uluxVmrs3xP7UBDRuS2lfVlvV1WD79tKFrtZ/adVaIFmzEgjOvrxCn iCDKa2ZPBoWfl8wIPv8PaLu6M5BXL6rDyC7ZYanOv3C6hLQKm6eHUK4jp/xB/AK73o1Q UFSceTsSLVRCx8EK7MmsbF2HiPyPY1i8OgXRxlZfji8Jdh4cAwvdHUvWiFy2z0FGiugB leeg==
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=qE7ovm5ajG5pXBUenoqCT/SDW5TjWjqD6tzYJHOPJg0=; b=NRXPQKQWBVlQV0BTVJbywri0rGtIxbiESLOJ4F27LprsUMAZe+MuAwz2jDa/vYDjsl bxdqU4lHQjoxefP4fn3O+sXsnmGTvT+Bs8a8E50Xoyure4LGlKr2YGawO53IJh4OCy/1 AZBk7Ah8s9nvi54DvTaMoU91zit8Ti/r8jc6dTvrhRykGSnt6vWltr7BujyViSpVDG3m ZJxIev8j2dRIY9L8mVbzrgLVz2E1VK2lf41NJHuN5pkNRWegMIJBMtAkporC0gu67T9S JioODpAsUqwYn7ZzHCBpSs/BdXozQUp8lVbKWx1wyZhuCz8UIW4UayyvOn6cGp23+VaD Jg/w==
X-Gm-Message-State: AOAM533t5ZVpjIOfOJ+HVftgnlcTt++m5J9R8vu2u7Tl5RQF8yLDg2uf xmzrJuBRlmBNwSXNmQ3569Z5sCQNFR4jw+ZwBso=
X-Google-Smtp-Source: ABdhPJwz2feyr8pASD5SR6ixEqmnnSS05XawY/7LcIbZRQWQ4jzLRLttU2Ep+YyuedfHNWwUgQIMWwPyDrRLeE2uGFo=
X-Received: by 2002:a17:906:2755:: with SMTP id a21mr168389ejd.374.1608322893895; Fri, 18 Dec 2020 12:21:33 -0800 (PST)
MIME-Version: 1.0
References: <32bc8d5e-23c9-412e-84a5-5f153e827c33@www.fastmail.com> <CAH_hAJFK_pRTBCbQKvs6hiHQERG7nHBb+KDpuLX9FFLRYO1SAQ@mail.gmail.com> <CAC7UV9a1uen8dRt-gMBBSXQEKeF47P8xH4KaM4NPbhG9PH7uLg@mail.gmail.com>
In-Reply-To: <CAC7UV9a1uen8dRt-gMBBSXQEKeF47P8xH4KaM4NPbhG9PH7uLg@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Fri, 18 Dec 2020 20:21:22 +0000
Message-ID: <CALGR9oYdoxZzZ7eQW-xeOmKb1jk9j0K5Swak+nNEPX0HK_dzzg@mail.gmail.com>
To: Robin MARX <robin.marx@uhasselt.be>
Cc: Cory Benfield <cory@lukasa.co.uk>, Martin Thomson <mt@lowentropy.net>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000c65cb005b6c2dac6"
Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=lucaspardue.24.7@gmail.com; helo=mail-ej1-x635.google.com
X-W3C-Hub-Spam-Status: No, score=-4.8
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, FREEMAIL_ENVFROM_END_DIGIT=0.25, 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_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1kqMG1-0003VA-DO dbfa703cd52eec28f0ef7dd924aded6e
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Priority signals in HTTP/2
Archived-At: <https://www.w3.org/mid/CALGR9oYdoxZzZ7eQW-xeOmKb1jk9j0K5Swak+nNEPX0HK_dzzg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/38325
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 think this is a good start Martin, I'd like to see a PR based on this
approach and promise to review it.

To respond to Robin:

On Fri, Dec 18, 2020 at 10:12 AM Robin MARX <robin.marx@uhasselt.be> wrote:

> 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.
>

I appreciate the sentiment but I think this oversteps from "if you really
want to bang your head on the wall, go to the wall" to recommending a
slightly slightly less painful method of headbanging. We have a better
alternative scheme, let's incentivise that.

A server won't know if a client is omitting H2 priority because it
purposefully wants Round Robin scheduling. Its a stupid deault but its an
easy default. As I've just discovered, talking about H2 priorities wrt
streams and pushes is tricky. So I suggest we don't spend text on it in
this document.

Cheers
Lucas



> 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
>
>
>