Header Compression Implementation Feedback

James M Snell <jasnell@gmail.com> Mon, 08 July 2013 20:36 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 256DD21F9C46 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 8 Jul 2013 13:36:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.522
X-Spam-Level:
X-Spam-Status: No, score=-10.522 tagged_above=-999 required=5 tests=[AWL=0.077, 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 KQb55QtIzRBs for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 8 Jul 2013 13:36:13 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id B271221F9C2D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 8 Jul 2013 13:36:13 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UwI92-0003KJ-2n for ietf-http-wg-dist@listhub.w3.org; Mon, 08 Jul 2013 20:34:48 +0000
Resent-Date: Mon, 08 Jul 2013 20:34:48 +0000
Resent-Message-Id: <E1UwI92-0003KJ-2n@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UwI8t-0003JD-Vb for ietf-http-wg@listhub.w3.org; Mon, 08 Jul 2013 20:34:39 +0000
Received: from mail-oa0-f42.google.com ([209.85.219.42]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <jasnell@gmail.com>) id 1UwI8t-0005aq-Ca for ietf-http-wg@w3.org; Mon, 08 Jul 2013 20:34:39 +0000
Received: by mail-oa0-f42.google.com with SMTP id j6so6993023oag.15 for <ietf-http-wg@w3.org>; Mon, 08 Jul 2013 13:34:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=T4gfhjOkyJGrkK5tEUx8XIS7rON9nF1T6wFaiRRxIKY=; b=tf90M1XTD3XFjJt9pP30GZ5tLcvyLDt/C4jL2HytZNZFcEwqcuZnxeJCEomP8vDddB tDWl6J5NJdojRrPkky1js/0pA3vOyBltiVia39gn3MTvVzGudXlrqaAf1KU474N1of3p hV66lo5J961VsfW5MKBWIN5Lvsvz7VsWfybMwtLQGMavY11J4oy2uIalMbZjMfqKRlGJ RDunY45mzfSd1CULfO6DumoJ/sP4sqKGv4V149UfPIB9sb06R4b54dgevo4Ir0oLK14c KzQQl1tZESTpv7NLTCdg7YdisIusfHxZjXU/Zk7jSnmnPRc5GAAKbBLdz7RuFM/Q0nLe BnuA==
X-Received: by 10.60.42.101 with SMTP id n5mr21570524oel.4.1373315653172; Mon, 08 Jul 2013 13:34:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.55.8 with HTTP; Mon, 8 Jul 2013 13:33:53 -0700 (PDT)
From: James M Snell <jasnell@gmail.com>
Date: Mon, 08 Jul 2013 13:33:53 -0700
Message-ID: <CABP7RbcjzwY6YgQWxRSu9zLJ6v2kwyQHyyr7t7SYOqH5e1Opow@mail.gmail.com>
To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=209.85.219.42; envelope-from=jasnell@gmail.com; helo=mail-oa0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.705, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1UwI8t-0005aq-Ca a4cd0046fa3d69e6747afef19a6f939f
X-Original-To: ietf-http-wg@w3.org
Subject: Header Compression Implementation Feedback
Archived-At: <http://www.w3.org/mid/CABP7RbcjzwY6YgQWxRSu9zLJ6v2kwyQHyyr7t7SYOqH5e1Opow@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/18637
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>

So I've gone through and updated my header compression implementation
based on the current spec. Some feedback (shouldn't be too surprising
to anyone who may have followed my previous inputs on this topic)

1. I'd be *MUCH* happier without the Differential Encoding and the
Reference Set requirement. These mechanisms are designed to further
cut down on the number of bits set across the wire but they do add
complexity to the implementation that I do not feel is strictly
necessary. It would be possible to greatly simplify implementation if
Differential Encoding and the Reference Set we dropped from the
mechanism altogether at the cost of only a handful of additional bytes
per serialized header block.

2. I'd be *MUCH* happier if Eviction in the Header Table did not cause
renumbering of the existing items and if there was a fixed range of
index positions. Roberto has argued that doing so gives much worse
compression overall when dealing with lots of smaller valued headers
but my testing against the current corpus of test headers has not
demonstrated any significant problems. I will be drafting up a
modified bohe proposal that describes what I'd like to see in detail.

3. Going with the fixed range of index positions would allow us to do
away with the distinction between Literal with Incremental and Literal
with Substitution indexing. Everything would essentially be Literal
with Incremental until the fixed range is consumed, then the index
would simply rollover to reuse the existing index positions. Yes, I
get that the current scheme gives encoders more flexibility to develop
alternative algorithms for management the header table but, so far, I
do not agree that the flexibility is worth the additional complexity.

- James