Re: [quicwg/base-drafts] Unidirectional stream (some or) all the control things in HTTP/3 (#2678)

Dmitri Tikhonov <notifications@github.com> Thu, 09 May 2019 14:02 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E0E621200E9 for <quic-issues@ietfa.amsl.com>; Thu, 9 May 2019 07:02:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.009
X-Spam-Level:
X-Spam-Status: No, score=-3.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 aEeVqwnFOh7p for <quic-issues@ietfa.amsl.com>; Thu, 9 May 2019 07:02:18 -0700 (PDT)
Received: from out-20.smtp.github.com (out-20.smtp.github.com [192.30.252.203]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1CA0912004C for <quic-issues@ietf.org>; Thu, 9 May 2019 07:02:18 -0700 (PDT)
Date: Thu, 09 May 2019 07:02:16 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1557410537; bh=T1XhyCspqOFgpyrjjy3LeFN1yK7WqXxAygPJbNYTiLk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=ywkIOEvtvb5REbif2dgcVXrDOLF4NWpFxkMRuAVCtC7F0AUgjEqJKPKpzMe7tX1ou BGlSRiyIHTfspme+/lTsPnmuR7QjC4AMeTB0eyghAjIDdymdA8JZYITvIkXaXvpRB6 gH64Mu/hmHXiTrMUWQuFEb20Kky0KWTYeomngmZI=
From: Dmitri Tikhonov <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKZR4LV4I6EJVAN5CFV24FSWREVBNHHBUVMWDQ@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2678/490917885@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2678@github.com>
References: <quicwg/base-drafts/issues/2678@github.com>
Subject: Re: [quicwg/base-drafts] Unidirectional stream (some or) all the control things in HTTP/3 (#2678)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cd432e8e9b17_74fc3fde3e8cd960161093"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: dtikhonov
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/fsEvc1B1RCVfrwsVENHsdd2VQNk>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 May 2019 14:02:24 -0000

Stopping processing _PRIORITY_ frames has the effect of -- well, **stopping** processing _PRIORITY_ frames.  In other words, in addition to the presumed packet loss (discussed in #2502 as part of @rmarx original scenario), this approach effectively simulates even more packet loss.

Consider what happens when there are many existing streams that need to be reprioritized.  A loss of a possibly unrelated (different subtree) _STREAM_ packet would now cause delay in applying priorities of one or more RTTs.

Then there are the corner cases.  For example, what happens when the client decides to cancel the stream whose lost _STREAM_ packet caused the priority stream blockage?  Do we need a special _CANCELLED_STREAM_ instruction on the control stream that would allow the server to resume processing the priority stream?  If so, this would introduce even more dependencies between streams.

Similar to QPACK design, stream prioritization mechanism should minimize the number of stream interdependencies and potential for priority inversion.  The current (http-20) spec is not perfect, but it has the profitable feature of stream independence.  Combined with the guarantee of eventual consistency, it strikes a good balance between complexity and performance.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2678#issuecomment-490917885