Re: [quicwg/base-drafts] HTTP/3 with strict priorities (#2700)

ianswett <> Fri, 17 May 2019 20:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9EC82120259 for <>; Fri, 17 May 2019 13:31:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 zyLdKLNLXfoP for <>; Fri, 17 May 2019 13:31:34 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 452D4120256 for <>; Fri, 17 May 2019 13:31:34 -0700 (PDT)
Date: Fri, 17 May 2019 13:31:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1558125093; bh=MksYxhdstz0TNX4/zHX0kje/GzZcANzl7W7ZczhzL88=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=JWmdvGf4A92T9guVs8stvvlj/dCvoeFZMJiJkUnLBaozTXJ4KiICdSAaYCWSKBN8R sus9BsuOfn5ecTu4ZEXhdfyD+bEaNhQkO+XWBl4xfNN7WcjJ8aliYqPTkVh6lKPGyR RUZt8GLXf9qLJB6DOmD87R6hz4uC2Tz0UMCkzXHI=
From: ianswett <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2700/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] HTTP/3 with strict priorities (#2700)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cdf1a256180f_71e3fbe7d6cd95c24738e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
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: Fri, 17 May 2019 20:31:37 -0000

Thanks for the follow-up discussion. I think some slides for the interim would be helpful, and I'm happy to work on them with @rmarx or anyone else who's there and wants to contribute.

On the matter of re-using HTTP/2 code, I think we've already departed enough that major changes are going to be necessary for many implementations.  For example, I believe Chrome would be best off moving to using a linked list of placeholders for it's priority buckets as @rmarx described.

In terms of complexity, this can be simplified some and I believe still represent the full functionality of HTTP/2.  In particular, strict priorities in placeholders or placeholders depending upon placeholders could be removed, since they're largely duplicative.

On a personal note, I'd prefer to adopt something closer to Patrick Meenan's proposal, but on that thread there was the theoretical use case of a proxy that wants to fairly share connectivity to an ORIGIN.  It doesn't appear anyone's using that, so I'd prefer to jettison it, but I'm trying to find a proposal we can agree on.

One thing to appreciate is that HTTP/2 is head-of-line blocking, but HTTP/3 is not, so waiting two RTTs before pruning may result in much more frequent issues in HTTP/3.  I'd recommend 3 * PTO or some much longer value.  I see changing HTTP/3's priority scheme similar to changing from HPACK to QPACK.  We need to acknowledge that removing HoL blocking is going to cause issues(that's why we removed exclusive prioritization) and make adjustments.  We've already made two large-ish changes, but we still don't have something with completely deterministic behavior.  In other parts of the transport(and QPACK), we've balked at pathological edge cases like that proposed in #2690, so it seems inconsistent to say it's OK for this one case.

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