Re: [quicwg/base-drafts] Remove PRIORITY (#2924)

Robin Marx <> Tue, 23 July 2019 10:06 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 603C7120147 for <>; Tue, 23 Jul 2019 03:06:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id zr3IE9eGGIJT for <>; Tue, 23 Jul 2019 03:05:58 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id AA42512010C for <>; Tue, 23 Jul 2019 03:05:58 -0700 (PDT)
Date: Tue, 23 Jul 2019 03:05:57 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1563876357; bh=NKxDpjxew0YkJyDTbcqo6D86E5ugV9ljymP2hz6Y7hQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=dQrjoC5Sqf3Cf+GOR8L2yEpZzH+MTPMRGuCo+RjiPFxuBT/CoYwFSLJXrHGuK9HKa eFDiakNu40te3XpDqF00qMBbpqNuhL0Hr0Ypq6bXpVhjIETXJF739g1Huy3F82wU9F grB5Vr9I1UrtmdCJgA94w91yMcGWrUVsQnePHoT4=
From: Robin Marx <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/2924/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Remove PRIORITY (#2924)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d36dc059df66_64bd3fb1e4ecd968149597"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: rmarx
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 23 Jul 2019 10:06:01 -0000

I really like your signal/waveform analogy Lucas, so I'll try to use it to make my point as well.

You view the removal of client-side signaling as just lowering the amplitude of the waveform. I view it more as taking too few samples to still satisfy the Nyquist theorem. In other words: we are indeed still able to reconstruct _something_ from the signals server-side, but the result doesn't (necessarily) look like the original anymore. This loss of information might be acceptable in some/most cases (important: acceptable, not optimal), but can be detrimental in an (important) subset of setups. 

I am mainly worried about the impact on more advanced recent and proposed features, such as preload/prefetch, async/defer and priority hints. These features were explicitly added to improve (load) performance and they are difficult to adhere to without client-side scheduling. I predict that removing prioritization from H3 without a fallback will lead to performance-minded people having to provide 2 different versions of their sites, 1 for H2 and 1 for H3. For example, the H2 version can have async/defer/preloads mentioned in the <head> of the HTML, the H3 version without priorities probably shouldn't. 

To also address your last "devil's advocate" from the other thread ( yes, FIFO willl work and won't be super-detrimental in most cases. However, it's been stated several times before that for H3 (and QUIC) to be successful and find adopters, it needs to have demonstrably better performance than H2/TCP. You will not get that from a simple FIFO and also not from more complex server-side-only heuristics based on user-agent + content-type (your "low amplitude" signal). If you want H3 to outperform (best-in-class) H2, I feel we need **more** signals, not less. And yes, much of H3's perf benefits will come from QUIC and 0-RTT etc. but even the Google paper quotes just 8% (at best) and those benefits are not limited to QUIC (e.g., TCP fast open, TLS 1.3 early data). The current discourse seems to be you agree that the performance would be worse than for H2, but that that's not an issue. I have a hard time understanding that point of view. 

In summary, I do not feel that server-side-**only** prioritization is a workable fallback solution ( (except maybe for implementations that were broken to start with... and while sticking our heads in the sand on this might allow us to "ship" QUIC and H3 "on schedule", I doubt the value of that in the long run. I'm fine with removing H2's priority system, but shipping H3 without a decent replacement is [madness]( 

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: