Re: Priority implementation complexity (was: Re: Extensible Priorities and Reprioritization)

Lucas Pardue <> Tue, 09 June 2020 19:25 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 194743A0D44 for <>; Tue, 9 Jun 2020 12:25:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.748
X-Spam-Status: No, score=-2.748 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.249, 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: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8PW7nS6l76Iq for <>; Tue, 9 Jun 2020 12:25:34 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7EA8C3A0D6F for <>; Tue, 9 Jun 2020 12:25:34 -0700 (PDT)
Received: from lists by with local (Exim 4.92) (envelope-from <>) id 1jijpV-0004zS-6n for; Tue, 09 Jun 2020 19:22:37 +0000
Resent-Date: Tue, 09 Jun 2020 19:22:37 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1jijpT-0004yg-C1 for; Tue, 09 Jun 2020 19:22:35 +0000
Received: from ([2a00:1450:4864:20::32a]) by with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from <>) id 1jijpR-0004gJ-JT for; Tue, 09 Jun 2020 19:22:34 +0000
Received: by with SMTP id k26so4269217wmi.4 for <>; Tue, 09 Jun 2020 12:22:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=i9AL+kpRgJrjtAW8SAEnouqU46mAW3Df/GvKU6TbQjw=; b=q3cAYA3zc2FEZHw1qbyN+RaDfCp9gMo+JtHcgQZ0cyB/Ql6RwLuAQtgHlVIribzAp6 duwye9TFX5hxitVIyhc6/oD8X1v0sSszXM2Djy/2tTWlFIq3I32qYBtZoak30Z9+8h0j 5gC+Am7vsNBWvc7jh1rd4b3qFhGIX3NFtJvKjULdUJph1gQTQjpsIkrd8b9C1Ttr4X9O GUwORvXkfEu77xLBq5yz4eQolKmlZXA56u3Rlm4JzPVWGAAo2zfxl4U53RmgMoIZgoXD u4ckwuOaQtQLX5g5pyHBQO2RPzwCVQK0JfZbABTTsn66sAOfHvaCj2Z6P9KTXi1pFMEL 0I8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=i9AL+kpRgJrjtAW8SAEnouqU46mAW3Df/GvKU6TbQjw=; b=ZBIY52V3K0OnZIMBsK2fw5avF+HjA8199KgVQggdzAduBAhLbdLybCXNCKO8teEFp3 VCrGhhcUk6oEHcknQ91F9/OLg39uwSHUU+hKvGQAM7T43HY27og8p9U6sotSas3qQbsi X9MDte79rcNrm/a5bbMImvKLNd6y8YXPWQCpJalZo0ZzITn2vo/CZDfPLblBY+ZZ/6pc VuUII2A4c/LZ2j8gPFsBy9HXaXAvzVUzK2Gf/EJPbSxL77byPwhvmAYHPW2fzCpA/GhK FWRotaQzUPYeiC6DCbusPl5n/Is5+I/CvO9kQM76InBpl/vozHfKTNwgiHhwQ8Vb00wZ EYrw==
X-Gm-Message-State: AOAM532awKgq6mrkn9ekdU8IOa3puS0jRSTZoDvtGCnfsC4QuO3/Oeh/ Y34w63lUVGKBb9jnM4XDFw3ViGngFFdop+tA4HA=
X-Google-Smtp-Source: ABdhPJx8660e+N2LCoHzmqtcff0b0UG8kRteqb+Bo666XtHSV8jhzp2bGG64XIkbLfsoYEVzvk+e/UnTwVDxt5m70Rk=
X-Received: by 2002:a1c:2b01:: with SMTP id r1mr5796318wmr.26.1591730542205; Tue, 09 Jun 2020 12:22:22 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <> <> <20200609144428.GC22180@lubuntu>
In-Reply-To: <20200609144428.GC22180@lubuntu>
From: Lucas Pardue <>
Date: Tue, 9 Jun 2020 20:22:10 +0100
Message-ID: <>
To: Lucas Pardue <>, HTTP Working Group <>, =?UTF-8?Q?Bence_B=C3=A9ky?= <>, Kazuho Oku <>
Content-Type: multipart/alternative; boundary="0000000000008bdf2705a7aba5cb"
Received-SPF: pass client-ip=2a00:1450:4864:20::32a;;
X-W3C-Hub-Spam-Status: No, score=-7.8
X-W3C-Scan-Sig: 1jijpR-0004gJ-JT 1cb5e541e3c7138870ff5ed9b697d83f
Subject: Re: Priority implementation complexity (was: Re: Extensible Priorities and Reprioritization)
Archived-At: <>
X-Mailing-List: <> archive/latest/37741
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

Hey Dmitri,

On Tue, Jun 9, 2020 at 3:44 PM Dmitri Tikhonov <>

> On Tue, Jun 09, 2020 at 03:15:44PM +0100, Lucas Pardue wrote:
> > I can hypothesize that an implementation with QPACK dynamic support has
> > already crossed the threshold of complexity that means implementing
> > reprioritization is not burdensome. I'd like to hear from other
> > implementers if they agree or disagree with this.
> I don't think we can judge either way.  If Alice implements QPACK and
> Bob implement reprioritization, results will vary based on their level
> of competence.  The degree of burden will also vary for each
> particular implementation.

I agree that, all things considered, QPACK and prioritization are
dissimilar. However, this thread is specifically exploring the mechanics of
the reprioritization mechanism, which requires a signal received on one
stream (the control stream) to affect the send behaviour on another. There
is always a possibility of a race here. My conjecture is that the
priorities race ends up being is similar to QPACK'S (i.e. handling blocked
streams). And therefore if Alice implements QPACK dynamic support
competently, then implementing reprioritization is no more difficult.

>   Speaking for lsquic, reprioritization
> had to [1] touch more code and was much more tightly coupled than
> QPACK; on the other had, QPACK encoder logic was a lot more code.

Thanks for sharing your experiences. If we take the scheduling aspects out
of consideration, the old HTTP/3 priority tree (+ placeholders etc) scheme
signals were pretty tough to implement. I suspect that extensible
priorities' reprioritization would be relatively more simple. But it would
be interesting to hear from someone that implemented the old scheme
compared with the new one.