Re: Alternative Header Compression Update..

Amos Jeffries <squid3@treenet.co.nz> Thu, 11 July 2013 03:15 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 0889721F8EFE for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 10 Jul 2013 20:15:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.544
X-Spam-Level:
X-Spam-Status: No, score=-10.544 tagged_above=-999 required=5 tests=[AWL=0.055, BAYES_00=-2.599, 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 uwg5nQg7ZcUX for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 10 Jul 2013 20:15:50 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 7D6E921F9AEE for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 10 Jul 2013 20:15:49 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Ux7L6-00084u-Q3 for ietf-http-wg-dist@listhub.w3.org; Thu, 11 Jul 2013 03:14:40 +0000
Resent-Date: Thu, 11 Jul 2013 03:14:40 +0000
Resent-Message-Id: <E1Ux7L6-00084u-Q3@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <squid3@treenet.co.nz>) id 1Ux7Kp-00081s-Uo for ietf-http-wg@listhub.w3.org; Thu, 11 Jul 2013 03:14:23 +0000
Received: from ip-58-28-153-233.static-xdsl.xnet.co.nz ([58.28.153.233] helo=treenet.co.nz) by maggie.w3.org with esmtp (Exim 4.72) (envelope-from <squid3@treenet.co.nz>) id 1Ux7Ko-000712-Tk for ietf-http-wg@w3.org; Thu, 11 Jul 2013 03:14:23 +0000
Received: from [192.168.1.218] (ip202-27-218-168.satlan.co.nz [202.27.218.168]) by treenet.co.nz (Postfix) with ESMTP id E449BE6EAF for <ietf-http-wg@w3.org>; Thu, 11 Jul 2013 15:13:59 +1200 (NZST)
Message-ID: <51DE22F4.1080102@treenet.co.nz>
Date: Thu, 11 Jul 2013 15:13:56 +1200
From: Amos Jeffries <squid3@treenet.co.nz>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
MIME-Version: 1.0
To: ietf-http-wg@w3.org
References: <CABP7RbcoTSGVbGKkzwtCjKL__mC_3m91tsu=V5U8wQAMGfG=Ag@mail.gmail.com> <79bb33de233a41b19c2958590d860cba@BY2PR03MB025.namprd03.prod.outlook.com>
In-Reply-To: <79bb33de233a41b19c2958590d860cba@BY2PR03MB025.namprd03.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=58.28.153.233; envelope-from=squid3@treenet.co.nz; helo=treenet.co.nz
X-W3C-Hub-Spam-Status: No, score=-3.1
X-W3C-Hub-Spam-Report: AWL=-3.104, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1Ux7Ko-000712-Tk b455deee7dee7382421eac289143790a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Alternative Header Compression Update..
Archived-At: <http://www.w3.org/mid/51DE22F4.1080102@treenet.co.nz>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18688
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 11/07/2013 6:22 a.m., Mike Bishop wrote:
> One advantage of removing the reference set is that Gabor's streaming proposal can be taken even further -- HEADERS frames from different streams can be interleaved with other frame types, because the headers they add to a stream are emitted as the frame is processed and the header table is always in a consistent state.
>
> Whether this would be desirable or useful, however, seems unclear.  HEADERS frames must still be processed in order for compression views to be consistent, and for HTTP semantics must precede any DATA on the same stream.

IMHO this is both desirable and useful.

Consider a load balancer which receives multiple hundreds of streams 
near simultaneously from as many servers and needs to deliver those 
frames to the one client connection. Being able to encode and serialize 
the frames as they arrive regardless of order means the balancer is not 
required to hold anything in queues waiting for followup frames no 
matter how the server read() are interleaved.

The clause mandating that HEADERS #h1 and HEADERS #h2 of a 2-block 
headers (stream #s1) be sequentially serialized on the wire is just 
adding needless complexity. Any compressor state changes which HEADERS 
of a separate stream (#s2) will cause if inserted between those #h1 and 
#h2 will be changes that would occur anyway if it were scheduled last 
after #h2. We also gain the potential benefit where HEADERS #1 of each 
stream might share some detail (long "Cookie"? long ":path"?) which 
otherwise could be evicted by HEADERS #h2 on stream #s1 and thus saving 
even more bandwidth on stream #s2.

Amos