Re: HTTP/3 with strict priorities (PR #2700)

Ian Swett <ianswett@google.com> Wed, 15 May 2019 21:51 UTC

Return-Path: <ianswett@google.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE5841200D8 for <quic@ietfa.amsl.com>; Wed, 15 May 2019 14:51:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.51
X-Spam-Level:
X-Spam-Status: No, score=-17.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 dixPmJoOKXpo for <quic@ietfa.amsl.com>; Wed, 15 May 2019 14:51:42 -0700 (PDT)
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B90B81200A2 for <quic@ietf.org>; Wed, 15 May 2019 14:51:41 -0700 (PDT)
Received: by mail-wr1-x42f.google.com with SMTP id f8so1124777wrt.1 for <quic@ietf.org>; Wed, 15 May 2019 14:51:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=Wqrhl88qWV10Zq9Ye/F5cUcOCQwNgaKYCQT2vOnCb0Q=; b=NPj3iLSA2kSe7CrLcCmBq2NqqYTTxzxVpT/J/mle+3FDkyU8Jx30K55Av/9GNGhW0d Ot9ZKfbO1MLK1iWj0qAY6Mcj6QYqrsBHlFSNzPsMCV1HKgWUGL29twyhEOjMgCFU6Rzi mKegc3i1uUEfaZw9UytHElc1S73w96p6ysoQlD4Ji+9LMDVCwd6tdl0rV5KNyz6R0w+c NMRztExny3XcfBkreg9HCbtLKiwUyKMH258yNuAq8V631f227EMDiulphtnUWBMxyLgX oGSPcgLyVGWbXYVezltLGirxMEiCp5mfoqaVvnrpL7q363Zq2MTvrZXz55zBQ3OmJwQu f1DQ==
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; bh=Wqrhl88qWV10Zq9Ye/F5cUcOCQwNgaKYCQT2vOnCb0Q=; b=o/ZcqeT5VRKUB0g73CfcBVHvc/i59KKTB4hgM3e3hDUAAy7XY0DgVvV+6J+uLaNdQw 49iaDn9/hZyysL936PdmPs1s2a8EO+6jYaPtwKiOQfx6FXrd0ZcUTSUvqMP/mnGShNsV hyUAQxKbGEI9Ve/F0UZTqusuQEVCbSlQJIIEGimYt4NjEdXPBZttbJoG9ajlPcwqwl7t lalwNHK+XqH0D5/5vvCTvoAzc6rXDkVrkpNfW7BcUTmX6UgUa7+xVMEih/1ZAg4sKgOS rcMK2MOkh9Uv7+zZFnsLw0w9HGq35xlw8q+0b8u4ymZlePJX+/NI6H4iGeHKIWELNhw/ Kwxg==
X-Gm-Message-State: APjAAAV97xyLK6OzCkWWwuMyK+yEG5wVcWR6wc9ytijq80hyzmH7H3VZ I2U5+vbhKuOe3qPIUUusvoyR/PJ0qPyOb/TsQOzBaQ==
X-Google-Smtp-Source: APXvYqyVse6yfrcXfpTNtwGcEkFdygf8QaCgPU5HmjbeJ/ZTBbmVWryIazP8R4rkeR+n3euSKYXw7MAxAYdLB0gdb8I=
X-Received: by 2002:adf:eb87:: with SMTP id t7mr26016169wrn.39.1557957099877; Wed, 15 May 2019 14:51:39 -0700 (PDT)
MIME-Version: 1.0
References: <20190515205451.GA32701@ubuntu-dmitri>
In-Reply-To: <20190515205451.GA32701@ubuntu-dmitri>
From: Ian Swett <ianswett@google.com>
Date: Wed, 15 May 2019 17:51:27 -0400
Message-ID: <CAKcm_gMz=ENz_bKSAa6MOYA39w-+66em1xE=JSt7QoupaNLabA@mail.gmail.com>
Subject: Re: HTTP/3 with strict priorities (PR #2700)
To: Ian Swett <ianswett@google.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000083de250588f427f3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Atv-ib_YJLJPIBDQjowIf73Bf-4>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 May 2019 21:51:45 -0000

Thanks for taking a look Dmitri.  I just added Issue #2502
<https://github.com/quicwg/base-drafts/issues/2502> to the PR.  It was
inadvertently sent out slightly before it was done, so there are some
details I'm still trying to fix.

On Wed, May 15, 2019 at 4:55 PM Dmitri Tikhonov <dtikhonov@litespeedtech.com>
wrote:

> Hello Ian,
>
> You opened a PR that proposes YAHPM (Yet Another HTTP Prioritization
> Mechanism) -- HTTP/3 with Strict Priorities.  Having read through the
> diff, I have several questions.  I am using this medium because your
> PR does not have an associated bug.
>
> 1. What is a _strict priority_?
>
>     There is no definition of strict priority that I could find
>     in the diff.  Do strict priorities work outside of the
>     dependency tree?  For example, which stream has higher priority
>     in the following figure?
>
>                 (Root Node)
>                /           \
>               /             \
>     (Placeholder A,     (Placeholder B,
>      Weight 50)             Weight 100)
>         |                    |
>         V                    V
>     (Stream P,          (Stream Q,
>      Priority 100)       Priority 50)
>

Strict priorities are only relative to other siblings under the same
placeholder/root.  I'll clarify that.  Currently the text says "Higher
priority elements have all available data sent before elements of lower
priority."


> 2. Why require PRIORITY frames delivered on own streams?
>
>     " In order to ensure that prioritization is processed in a
>     " consistent order, any subsequent PRIORITY frames for that
>     " request MUST be sent on the request stream.
>
>     This requirement is unfortunate, as Lucas Pardue has already
>     observed (see PR comments).  Is this done to avoid introducing
>     false stream dependencies or is there another reason for this
>     requirement?
>

I made the change because it was a simplification that was possible, but I
think it's a poor choice on my part so I'm going to go back to allowing
PRIORITY on either the request stream or control stream, I just haven't had
a chance to update the PR yet.

>
> 3. What problem do all-or-nothing resources solve?
>
>     " When [weight is] absent, indicates the resource should be
>     " delivered all at once or not at all.
>
>     This is new.  I don't believe I've seen it in other prioritization
>     proposals.  Adding this dimension increases complexity.  What
>     problem do these all-or-nothing resources solve?
>

This is an effort to incorporate Patrick Meenan's Round Robin Sequential
and Round Robin Interleaved proposal, as outlined on slide 49 here:
https://github.com/HTTPWorkshop/workshop2019/blob/master/talks/pardue-jones-priorities.pdf
or
here: http3-prioritization-proposal
<https://github.com/pmeenan/http3-prioritization-proposal/blob/master/README.md>

I'm sure Patrick could rewrite this text more clearly, and I think
Patrick's explanation for the motivation is solid.

>
> Thank you,
>
>   - Dmitri.
>
>