Re: Straw Poll: Restore Header Table and Static Table Indices
Roberto Peon <grmocg@gmail.com> Tue, 14 October 2014 17:20 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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C0F101A9078 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 14 Oct 2014 10:20:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.787
X-Spam-Level:
X-Spam-Status: No, score=-7.787 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.786, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 lNdfxVK-uo6o for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 14 Oct 2014 10:20:24 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6269F1A8FD4 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 14 Oct 2014 10:20:24 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Xe5jV-0005eY-7N for ietf-http-wg-dist@listhub.w3.org; Tue, 14 Oct 2014 17:18:01 +0000
Resent-Date: Tue, 14 Oct 2014 17:18:01 +0000
Resent-Message-Id: <E1Xe5jV-0005eY-7N@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1Xe5jO-0005X4-Da for ietf-http-wg@listhub.w3.org; Tue, 14 Oct 2014 17:17:54 +0000
Received: from mail-oi0-f54.google.com ([209.85.218.54]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1Xe5jN-0000Zg-6F for ietf-http-wg@w3.org; Tue, 14 Oct 2014 17:17:54 +0000
Received: by mail-oi0-f54.google.com with SMTP id v63so17450178oia.27 for <ietf-http-wg@w3.org>; Tue, 14 Oct 2014 10:17:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JQIPyzaBhaz7Ml//ghiGbEi+pJuvzcEL3TWRojiu5FI=; b=p6UBL8MazFTFGqhTiTJL/+EEgcsYIPVYzNmjvmGzIrVVS5V8pjsrJTxhVBrrmdlp7I Re7nLC5oL5D7upLoeEk0VwAhIa+NJfSO2SkzJEJvrUJ3WPD9rXs7hkmBMh20LrpLQOb8 1mlg80ziKiPCiq9IZnvvM8vkTNrmHiGUWwfUonkSvdtWskCImAl/gkMIZTHjvsplf7gS Xu7xjQ6rJ38scx2Gpi1ul3JL7xV+AECXYyRph5Nhsi0T54a+I5bDrabcGWO86D9ua5I2 JbSPcbloWBh0kE31t0aeSlEbGW92Gc4GA/UShdYsgydzvr5NzJ+628a55ZdCFmDnummp t9vA==
MIME-Version: 1.0
X-Received: by 10.60.130.226 with SMTP id oh2mr5937031oeb.10.1413307047281; Tue, 14 Oct 2014 10:17:27 -0700 (PDT)
Received: by 10.76.94.37 with HTTP; Tue, 14 Oct 2014 10:17:27 -0700 (PDT)
In-Reply-To: <20141013012326.GD13217@1wt.eu>
References: <CA+pLO_jkN67HLT7oup+FcYVY+RZ7ckhpY2gGy=TAsr2UUMnVVA@mail.gmail.com> <987FB86A-EF8B-4CD1-A9A7-52A9163E8CB3@mnot.net> <EBB30C88-7EBD-400F-9591-B646B4D3687B@mnot.net> <CAP+FsNeJU6aciA+UV3sQ318e4=fXxv9zZbsDZ1jXmYstz6XwaQ@mail.gmail.com> <E465C1C7-20DF-4F78-9936-9C914042920A@mnot.net> <20141013012326.GD13217@1wt.eu>
Date: Tue, 14 Oct 2014 10:17:27 -0700
Message-ID: <CAP+FsNci+YbQ9fP9LiJ1BBUSDryWOqi4A4YsKyORskY7pK0Fmg@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: Willy Tarreau <w@1wt.eu>
Cc: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>, Jeff Pinner <jpinner@twitter.com>
Content-Type: multipart/alternative; boundary="089e0112d0d0830aa605056530f2"
Received-SPF: pass client-ip=209.85.218.54; envelope-from=grmocg@gmail.com; helo=mail-oi0-f54.google.com
X-W3C-Hub-Spam-Status: No, score=-4.5
X-W3C-Hub-Spam-Report: AWL=-1.768, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1Xe5jN-0000Zg-6F dda1434081e0a61d06b7864fdf5ef3dd
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Straw Poll: Restore Header Table and Static Table Indices
Archived-At: <http://www.w3.org/mid/CAP+FsNci+YbQ9fP9LiJ1BBUSDryWOqi4A4YsKyORskY7pK0Fmg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/27597
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>
Sorry for the slow response; been a little sick over here. At least my
voice sounds cool, not that most of you will have heard it.
My concern comes from an assumption that we'll use HTTP/2 for more than
just browsing, i.e. that it will see major use for non-web RPC protocols
both internal to networks, and between networks (i.e. RPCs to/from "the
cloud" and whatever it evolves to in the future).
The current compression scheme can end up having twice the amount of bloat
in terms of headers per request, even when these headers are used with much
greater frequency than the current set of static headers.
One byte more overhead is significant when the amount of overhead was
typically one byte to begin with, and not with huge changes in complexity.
On complexity:
The removal of the reference set removed the lion's share of complexity in
the previous set of changes.
The changing of the indexing, however, did not remove significant
complexity.
The total change in complexity resulting from the change of indexing can be
summarized as:
Previously:
References to the static set are:
dynamic_set_len + static_set_offset
References to the dynamic set are:
dynamic_set_offset
And with the spec as it stands now:
References to the static set are:
static_set_offset
References to the dynamic set are:
static_set_len + dynamic_set_offset
So, at worst, we're talking about adding an int instead of adding a const.
The worst possible impact of this means that one cannot bit-blit a large
number of static headers-- one must add them one at a time or fix them up.
I'll bet that I can show that this makes almost zero difference in CPU when
implemented properly (there is little magical about a bit-blit to begin
with)-- I'd be shocked if we couldn't do 100s of millions of header-sets
per second on a single core.
With the spec as it stands today w.r.t. indexing (which, again, was not a
change that we'd agreed on doing), we lose out in flexibility in the long
term.
"New" headers become significantly disadvantaged over the ones currently in
there, and are very likely to occur in a number of non-web deployments.
Adding new headers into the static set in the future with the current
scheme decreases overall dynamic efficiency. It is no longer a low-cost,
high reward decision.
-=R
On Sun, Oct 12, 2014 at 6:23 PM, Willy Tarreau <w@1wt.eu> wrote:
> Hi Mark,
>
> On Mon, Oct 13, 2014 at 11:52:43AM +1100, Mark Nottingham wrote:
> > Roberto,
> >
> > So far, we've had a large number of people -1 any change here.
> Summarising:
> >
> > * It's been asserted that the current approach is "much simpler" to
> implement
> > * The difference is "marginal"
> > * There's concern about "churn" in the spec and implementations
> > * There's concern that the proposals are untested
> >
> > You say it's "highly suboptimal", but you don't back this up. Indeed,
> we've
> > long established that the WG is not terribly interested in getting the
> *most*
> > efficient compression available -- especially if it's bought with
> complexity.
>
> I think the complexity that was lost with the change was the copy from
> static
> to dynamic. In fact, swapping static and dynamic was done only to get
> smaller
> indexes on static that can now be compressed in one byte, possibility that
> was
> previously offered to dynamic headers only. What we really need to satisfy
> all
> users is to be able to encode *most common* static headers with 1 byte, and
> a number of dynamic headers with 1 byte as well.
>
> > As Mike said once long ago, the important part is that we get *some*
> > compression, and my perception is that there's wide agreement in the WG
> on
> > that point.
>
> I also agree with this.
>
> > In the face of that, a one-byte overhead for dynamic headers is hard to
> > characterise as "highly suboptimal."
>
> I wouldn't be as categoric as Roberto here but I understand his point. The
> previous design allowed headers not belonging to the static table to be
> correctly compressed (whatever X-* headers appearing inside companies).
> The new one makes new headers less efficient than the static ones, and I
> think Roberto sees less possibilities of future improvements with this
> design.
>
> > Other folks have discussed / proposed more elaborate changes than Jeff,
> but I
> > detect very little stomach in the WG for doing so.
> >
> > At most, I think we're at a point where the most reasonable thing to do,
> *if*
> > we do anything here, would be to revisit the static table and "make
> room" for
> > more dynamic entries by pruning it some, as per
> > <https://github.com/http2/http2-spec/issues/587>.
>
> It's more or less similar to what I suggested as well to what I proposed
> except
> that we don't need to *prune* some entries if the single-byte encoding
> covers
> part of both tables.
>
> > However, as discussed before, we'd need to see broad support for such a
> > change; so far, we've held that #587 will only happen if we're making
> other
> > breaking changes.
>
> The problem when there are implementations available is that developers
> know
> what it means for them to have to modify them : modify both encoders and
> decoders in multiple products, plan certain outages etc... The problem is
> that we need to be careful about future users, not early adopters, and all
> of us have to think about how efficient the protocol will be in 1-10 years,
> not just right now in implementations that will inevitably evolve in the
> following months.
>
> I personally think that the single-byte encoding of *some* dynamic headers
> has a real value, and even if people are not pleased with revisiting their
> code, we should do something for it.
>
> Best regards,
> Willy
>
>
- Re: Restore Header Table and Static Table Indices Nicholas Hurley
- Restore Header Table and Static Table Indices Jeff Pinner
- Re: Restore Header Table and Static Table Indices Kulkarni, Saurabh
- Re: Restore Header Table and Static Table Indices Poul-Henning Kamp
- Straw Poll: Restore Header Table and Static Table… Mark Nottingham
- Re: Restore Header Table and Static Table Indices Ludin, Stephen
- Re: Restore Header Table and Static Table Indices Michael Sweet
- Re: Restore Header Table and Static Table Indices Greg Wilkins
- Re: Restore Header Table and Static Table Indices Daniel Stenberg
- Re: Restore Header Table and Static Table Indices Simpson, Robby (GE Energy Management)
- Re: Restore Header Table and Static Table Indices Roberto Peon
- RE: Restore Header Table and Static Table Indices Mike Bishop
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Shigeki Ohtsu
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Amos Jeffries
- RE: Straw Poll: Restore Header Table and Static T… K.Morgan
- Re: Straw Poll: Restore Header Table and Static T… Nicholas Hurley
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Nicholas Hurley
- RE: Straw Poll: Restore Header Table and Static T… RUELLAN Herve
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Roberto Peon
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Roberto Peon
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Adrian Cole
- Re: Restore Header Table and Static Table Indices Adrian Cole
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Adrian Cole
- Re: Straw Poll: Restore Header Table and Static T… Adrian Cole
- Re: Straw Poll: Restore Header Table and Static T… Amos Jeffries
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Adrian Cole
- RE: Straw Poll: Restore Header Table and Static T… RUELLAN Herve
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Simpson, Robby (GE Energy Management)
- Re: Straw Poll: Restore Header Table and Static T… Simpson, Robby (GE Energy Management)
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Jason Greene
- RE: Straw Poll: Restore Header Table and Static T… RUELLAN Herve
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Mark Nottingham
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Roberto Peon
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Julian Reschke
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Poul-Henning Kamp
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Greg Wilkins
- Re: Straw Poll: Restore Header Table and Static T… Willy Tarreau
- Re: Straw Poll: Restore Header Table and Static T… Jason Greene
- timestamps encoding (was: Re: Straw Poll: Restore… Willy Tarreau
- #578 [was: Straw Poll: Restore Header Table and S… Mark Nottingham
- Re: timestamps encoding (was: Re: Straw Poll: Res… Martin Nilsson
- Re: timestamps encoding Amos Jeffries
- Re: #578 [was: Straw Poll: Restore Header Table a… Amos Jeffries
- Re: #578 [was: Straw Poll: Restore Header Table a… Mark Nottingham
- Re: timestamps encoding Martin Nilsson