Re: http/2 prioritization/fairness bug with proxies

Mike Belshe <mike@belshe.com> Sun, 10 February 2013 22:08 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E848421F84EB for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 10 Feb 2013 14:08:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.751
X-Spam-Level:
X-Spam-Status: No, score=-9.751 tagged_above=-999 required=5 tests=[AWL=-0.075, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lSgt8gS3S27x for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 10 Feb 2013 14:08:04 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id C731321F84C9 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 10 Feb 2013 14:08:03 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1U4f36-0005q5-3F for ietf-http-wg-dist@listhub.w3.org; Sun, 10 Feb 2013 22:07:00 +0000
Resent-Date: Sun, 10 Feb 2013 22:07:00 +0000
Resent-Message-Id: <E1U4f36-0005q5-3F@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <mike@belshe.com>) id 1U4f2y-0005pL-Vt for ietf-http-wg@listhub.w3.org; Sun, 10 Feb 2013 22:06:53 +0000
Received: from mail-bk0-f41.google.com ([209.85.214.41]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <mike@belshe.com>) id 1U4f2x-0003zO-VR for ietf-http-wg@w3.org; Sun, 10 Feb 2013 22:06:52 +0000
Received: by mail-bk0-f41.google.com with SMTP id q16so2404214bkw.0 for <ietf-http-wg@w3.org>; Sun, 10 Feb 2013 14:06:25 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=rKoi7SQVyFmig0YChafPBXtJ5OfJ0RZKihTiyLmPOJc=; b=hyFMmCM7Zoc8BigiDloghZZxM9UMc9KRhHlPyCYNEPzczPZjhNtzkYnPAknlHLZjNJ 756yQotjtgtbPDKfN3zabTaOpyXWzO/Wtm33X9RMracFc5ye7SkEi/QKI/izb9bNR8om wd5TXrqpLN0LSUuvMDIH9OyzOaILGsXiLlSzZYV2oVKyyahYSv8ZoHnS11Tfg2nc+WsU O2xb1/pbAEdmv+//zUvVdzP7fBpjBJiL8hnUzyE27G5HzJ816NLFltXCAIFG2jtcOBCZ aL2jHo+3yDc6PZBKj2MWCSDajQaAdsQXn28QGpsuiaKAibfbTwpyfALugthzzau3aNmZ BHxg==
MIME-Version: 1.0
X-Received: by 10.204.4.215 with SMTP id 23mr3372902bks.110.1360533985344; Sun, 10 Feb 2013 14:06:25 -0800 (PST)
Received: by 10.204.148.135 with HTTP; Sun, 10 Feb 2013 14:06:25 -0800 (PST)
In-Reply-To: <CAA4WUYiyu+JvFuKooqa4xVdCJP=Mngu9dgHjhH99_SEac1kCZQ@mail.gmail.com>
References: <CAA4WUYjiBZpShKKFfHQnixc94aOLrck0oR4ykARB=hF5h8nkfA@mail.gmail.com> <3430.1359961022@critter.freebsd.dk> <510F72CE.8030003@treenet.co.nz> <CAA4WUYiBJrLjM0-vurFOuJfUaabXtK=W8N5z28yshSfrvD9crg@mail.gmail.com> <1516.1360002578@critter.freebsd.dk> <42A54D15-0AA3-4172-94F7-E94C86E84D7F@niven-jenkins.co.uk> <2346.1360010079@critter.freebsd.dk> <CAA4WUYiyu+JvFuKooqa4xVdCJP=Mngu9dgHjhH99_SEac1kCZQ@mail.gmail.com>
Date: Sun, 10 Feb 2013 14:06:25 -0800
Message-ID: <CABaLYCtX04se2BJ0c1yCYkwH2xvkcETdu7Pe+B8fy=DJrouo6Q@mail.gmail.com>
From: Mike Belshe <mike@belshe.com>
To: "William Chan (陈智昌)" <willchan@chromium.org>
Cc: Poul-Henning Kamp <phk@phk.freebsd.dk>, Ben Niven-Jenkins <ben@niven-jenkins.co.uk>, Amos Jeffries <squid3@treenet.co.nz>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="0015174c1caae6bbcc04d56600aa"
X-Gm-Message-State: ALoCoQkgcv9Kseo7CWrNLUyjHHCpsID+L6les2X57MMqppdO4lUybfOZRMcQ4izjY/LyMUcfeA0P
Received-SPF: none client-ip=209.85.214.41; envelope-from=mike@belshe.com; helo=mail-bk0-f41.google.com
X-W3C-Hub-Spam-Status: No, score=-3.7
X-W3C-Hub-Spam-Report: AWL=-1.075, BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7
X-W3C-Scan-Sig: maggie.w3.org 1U4f2x-0003zO-VR a3b2f15bb2f9ff297177ba148cd12855
X-Original-To: ietf-http-wg@w3.org
Subject: Re: http/2 prioritization/fairness bug with proxies
Archived-At: <http://www.w3.org/mid/CABaLYCtX04se2BJ0c1yCYkwH2xvkcETdu7Pe+B8fy=DJrouo6Q@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16529
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On Mon, Feb 4, 2013 at 5:47 PM, William Chan (陈智昌) <willchan@chromium.org>wrote:

> I'm sorry if I am unclear in any way. Please continue to
> challenge/question my comments/assertions so I can clarify my position
> as appropriate.
>
> Just to be clear here, I stand by that it's a protocol bug currently.
>

+0.5.  :-)

Mark - I think we could open a issue ticket with the current HTTP/2.0 draft
that this is a bug which will present itself for servers that implement
naively.  This isn't strictly a "bug", since the spec says the server can
do whatever it wants with priorities, but this is subtle enough (surfacing
primarily in http/2 -> http/2 proxy situations), that many server
implementors won't think of it unless we mention it in the spec.

The bare minimum would be to simply document it and tell servers not to
starve out streams.  However, this is probably a wimpy approach and I think
we can do better.

The SPDY/4 prioritization changes are far more reaching than just fixing
this bug.  While I like grouping as a feature, I don't believe it actually
fixes this bug:  a browser could open a high priority, infinite stream,
which is competing across a shared proxy backend with other streams; unless
the user manually switches tabs (or does something to force changed
groups), the starvation can still occur.

Mike





> I agree with adding more hooks to convey advisory priority semantics.
> That said, "advisory" is open to interpretation. I agree that the
> sender should ultimately be in control of how it orders responses, and
> indeed there are of course many situations where it's best for the
> sender to ignore the advisory priority. Yet, if the advisory priority
> semantics are generally not respected, then clients will not be able
> to rely on them, and will be forced to implement prioritization at a
> higher layer, which suffers from the link underutilization vs
> contention tradeoff I highlighted earlier.
>
> I appreciate the concern that we're adding complexity by introducing
> new semantics. I am arguing that because the existing mechanisms for
> addressing starvation are suboptimal, we should treat this as a
> protocol bug and thus change the protocol in such a way as to fix this
> problem. My suggestion for doing so was adding new priority "grouping"
> semantics. I am hopeful that these new semantics will not introduce an
> inordinate amount of specification, as the primary idea is that the
> current SPDY priority levels would apply within a "group". I think we
> can come up with a way to define a group that will be relatively easy
> to spec.
>
> SPDY/4 introduces other prioritization semantics beyond just grouping,
> but I wanted to focus on this one first, as I believe this is a bug
> that we *need* to fix. The other SPDY/4 priority changes are of a
> performance optimization nature, and I believe they will need to be
> justified by data. I have no plans to raise them up in this group
> until we have said data.
>
> On Tue, Feb 5, 2013 at 5:34 AM, Poul-Henning Kamp <phk@phk.freebsd.dk>
> wrote:
> > Content-Type: text/plain; charset=ISO-8859-1
> > --------
> > In message <42A54D15-0AA3-4172-94F7-E94C86E84D7F@niven-jenkins.co.uk>,
> Ben Nive
> > n-Jenkins writes:
> >
> >>So the idea is the protocol contains enough 'hooks' to sufficiently
> >>express the different priorities between & within groups that folks
> >>would like to express but isn't prescriptive about how anyone uses or
> >>implements different prioritisation, scheduling, etc schemes.
> >
> > That was clearly not how the original poster presented it:
> >
> >         "I consider all those options as suboptimal, and thus
> >         consider this issue to be a protocol bug. Our SPDY/4
> >         prioritization proposal addresses this by [...]"
> >
> > --
> > Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> > phk@FreeBSD.ORG         | TCP/IP since RFC 956
> > FreeBSD committer       | BSD since 4.3-tahoe
> > Never attribute to malice what can adequately be explained by
> incompetence.
>
>