Re: Pipeline hinting revisited

Darin Fisher <darin@chromium.org> Fri, 12 August 2011 05:44 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 8A74321F8658 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 11 Aug 2011 22:44:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.976
X-Spam-Level:
X-Spam-Status: No, score=-9.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R-YzM4cpH7y5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 11 Aug 2011 22:44:26 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 86B9121F863E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 11 Aug 2011 22:44:26 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.69) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1QrkXg-00014v-1j for ietf-http-wg-dist@listhub.w3.org; Fri, 12 Aug 2011 05:44:24 +0000
Received: from aji.keio.w3.org ([133.27.228.206]) by frink.w3.org with esmtp (Exim 4.69) (envelope-from <darin@google.com>) id 1QrkXV-000144-LT for ietf-http-wg@listhub.w3.org; Fri, 12 Aug 2011 05:44:14 +0000
Received: from smtp-out.google.com ([216.239.44.51]) by aji.keio.w3.org with esmtp (Exim 4.72) (envelope-from <darin@google.com>) id 1QrkXQ-0002QR-L5 for ietf-http-wg@w3.org; Fri, 12 Aug 2011 05:44:12 +0000
Received: from wpaz1.hot.corp.google.com (wpaz1.hot.corp.google.com [172.24.198.65]) by smtp-out.google.com with ESMTP id p7C5hdiG020842 for <ietf-http-wg@w3.org>; Thu, 11 Aug 2011 22:43:39 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1313127821; bh=InUYOwoXpSmyaeVkWmFi9bTsZZA=; h=MIME-Version:Sender:In-Reply-To:References:Date:Message-ID: Subject:From:To:Cc:Content-Type; b=XGYqLWUQodTAVnPAYMdJxxXeihyqbssdRME3WNEcOveOxGZr6ZMwy+qKNDa1Xntw3 vmPtEdej7V9/BurFZcW1g==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=dkim-signature:mime-version:sender:in-reply-to:references:date: x-google-sender-auth:message-id:subject:from:to:cc:content-type:x-system-of-record; b=L4YZcl7IlIgcIey0vg4UjiB27J6GhNp4xomEjLax/9e0zADG8Fjv/qJgUob4PsMeS yuTaXK+yNac97gWrGx6Zg==
Received: from iyn35 (iyn35.prod.google.com [10.241.52.99]) by wpaz1.hot.corp.google.com with ESMTP id p7C5hbkb023001 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <ietf-http-wg@w3.org>; Thu, 11 Aug 2011 22:43:38 -0700
Received: by iyn35 with SMTP id 35so990213iyn.35 for <ietf-http-wg@w3.org>; Thu, 11 Aug 2011 22:43:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=orSjlQ2UcbMI5UxBHnWjYJjgHJTz7s/PGNnl7WQA3BY=; b=eiJ0MkyBJbofXNJnXt2yEkRhpfL7rbpvdBGD+CFI7QSy2TMvZPkg0yqVGgHvE+fSrr MJYh8pO2+DLX5k4qFmYg==
Received: by 10.231.91.73 with SMTP id l9mr1073385ibm.76.1313127817057; Thu, 11 Aug 2011 22:43:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.91.73 with SMTP id l9mr1073376ibm.76.1313127816831; Thu, 11 Aug 2011 22:43:36 -0700 (PDT)
Received: by 10.231.11.195 with HTTP; Thu, 11 Aug 2011 22:43:36 -0700 (PDT)
In-Reply-To: <20110812053137.GC9902@1wt.eu>
References: <CAAbTgTu2px+o=mFyEOuSW8KzHR-o5GeN9b6X-Q+VuRtQP=A0Qw@mail.gmail.com> <20110812053137.GC9902@1wt.eu>
Date: Thu, 11 Aug 2011 22:43:36 -0700
X-Google-Sender-Auth: z0yAlVt-_8pCItmhqo7IUEApmXo
Message-ID: <CAP0-QpukAzexjJaMOHoTaAGRPYV_7-91Fr9P_ukkqNQ1gsDC_A@mail.gmail.com>
From: Darin Fisher <darin@chromium.org>
To: Willy Tarreau <w@1wt.eu>
Cc: Brian Pane <brianp@brianp.net>, ietf-http-wg@w3.org
Content-Type: multipart/alternative; boundary="bcaec53f8c1f1124ea04aa486586"
X-System-Of-Record: true
Received-SPF: pass client-ip=216.239.44.51; envelope-from=darin@google.com; helo=smtp-out.google.com
X-W3C-Hub-Spam-Status: No, score=-5.0
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.811, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: aji.keio.w3.org 1QrkXQ-0002QR-L5 cd457567dbd38ffc4a80c531b202871d
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Pipeline hinting revisited
Archived-At: <http://www.w3.org/mid/CAP0-QpukAzexjJaMOHoTaAGRPYV_7-91Fr9P_ukkqNQ1gsDC_A@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/11189
X-Loop: ietf-http-wg@w3.org
Sender: ietf-http-wg-request@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>
Resent-Message-Id: <E1QrkXg-00014v-1j@frink.w3.org>
Resent-Date: Fri, 12 Aug 2011 05:44:24 +0000

On Thu, Aug 11, 2011 at 10:31 PM, Willy Tarreau <w@1wt.eu> wrote:

> Hi Brian,
>
> On Thu, Aug 11, 2011 at 03:12:31PM -0700, Brian Pane wrote:
> > I've been thinking some more about request pipelining recently,
> > triggered by several observations:
> >
> > - A significant number of real-world websites could be made faster via
> > widespread adoption of request pipelining (based on my study of
> > ~15,000 sites in the httparchive.org corpus).
> > - A nontrivial fraction of mobile browsers are using pipelining
> > already, albeit not as aggressively as they could (based on Blaze's
> > study: http://www.blaze.io/mobile/http-pipelining-big-in-mobile/ )
> > - Client implementations that currently pipeline their requests are
> > using heuristics of varying complexity to try to decide when
> > pipelining is safe.  The list of conditions documented here is at the
> > complex end of the spectrum, and it's perhaps still incomplete:
> > https://bugzilla.mozilla.org/show_bug.cgi?id=599164
> >
> > The key question, I think, is whether heuristics implemented on the
> > client side will end up being sufficient to detect safe opportunities
> > for pipelining.  If not, a server-driven hinting mechanism of the sort
> > proposed in Mark's "making pipelining usable" draft (
> > http://tools.ietf.org/html/draft-nottingham-http-pipeline-01 ) seems
> > necessary.
> >
> > Anybody have additional experimental data on pipelining (including the
> > effectiveness of heuristics for turning pipelining on or off) that
> > they can share?
>
> We've been conducting some tests for a customer working with mobile
> terminals. I was very frustrated to see that pipelining did not bring
> any gain there due to the first non-pipelined request to each host.
> What happens is that there are many objects on a page, spread over
> many hosts. The terminal opens many parallel connections to these
> hosts, and as a result, there are 4-5 objects max to fetch over each
> connection. All connection have a first object fetched alone, and only
> once a response is received, a batch of 4 requests is sent. It is this
> pause between the first and the next request over a connection which
> voids the gain. It was always faster to open more parallel connection,
> despite the extra bandwidth, than to use pipeline, precisely due to
> this point.
>
> This is why I think we need to find a solution so that pipelining could
> be more aggressive on riskless requests, and possibly use the server
> side's hinting to safely fall back to non-pipelining ASAP if needed.
> I'm well aware that the biggest issue seems to be with broken servers
> getting stuck between requests. I don't know if there are many of those
> or not, but maybe at one point it will become those site's problem and
> not the browsers'.
>

Often it is a bad intermediary (transparent proxy).  The origin server may
be just as helpless as the client :-(

-Darin



>
> Also, another important thing to note is that (especially in mobile
> environments), the highest latency is between the terminal and the
> ISP's infrastructure, where interception proxies are quite common.
> It would be a tremendous help to be able to use pipelining by default
> without hinting, because these interception proxies generally support
> pipelining very well and are the only ones for whom it's important.
> That way we could have a terminal always pipeline requests and the
> interception proxy do whatever it likes on the last 10-millisecond
> segment.
>
> Regards,
> Willy
>
>
>