Re: APack async header compression

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Sat, 09 December 2017 09:35 UTC

Return-Path: <mikkelfj@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 60E5B120727 for <quic@ietfa.amsl.com>; Sat, 9 Dec 2017 01:35:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level:
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[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, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 harq4MqZzny8 for <quic@ietfa.amsl.com>; Sat, 9 Dec 2017 01:34:59 -0800 (PST)
Received: from mail-io0-x231.google.com (mail-io0-x231.google.com [IPv6:2607:f8b0:4001:c06::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5FC612421A for <quic@ietf.org>; Sat, 9 Dec 2017 01:34:59 -0800 (PST)
Received: by mail-io0-x231.google.com with SMTP id w127so4817545iow.11 for <quic@ietf.org>; Sat, 09 Dec 2017 01:34:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=cKuy4O5PmgThOzRBnKaGG+qWP4g32d1GuZn24fMYB/k=; b=jmgSCJCEJJ2e23lCo31xr+zGy94ctLBP09QDHdEiW7gnlS7mMuwhYfKTupy9XN2c4H YQM8mweHpbhOGW+/Bd9d8x54/eFrrUg9iKhF2V3eKlIu1TZBqiPUT8V2JDGjeI3GKyZV WMpBOFZu7DYJzU0UdN2+cqKpba5EIqhtr5vrtdcXmNJRnOFT4Vgd1kEGLFpJqKpYjP8M AecthSaXVmfTRDBtstVMD8utI48Qt1vgDWcJZg0XQCbis3bkxKSyMmu7s0woelCRKy1s 0WcPNEG2LOqCnrIRSQkTBBcqK14tuG8Y3EY/oUsJbQ4eJ06/EZuGssv1hr1Prm7JbiUm 6Lqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=cKuy4O5PmgThOzRBnKaGG+qWP4g32d1GuZn24fMYB/k=; b=j8LjzlUBdF8zuSj/+Kr+A9Z3BYacInyNSXN9GPCQXv+Eg4JukGZBLZXn0ePrKRXnC1 wld0L+2bYvKcU2eZQju0mFUc69834e6ixL9l8TlEBHj/+JyJR2IP3BhcgSL2p8bD3Cdu DDdPheEYOXUJNHHPBZCgha9VqoeVZ0rYuX+4qkQWZJ5cj1pkd1fOwn7adC/5UEUPoey6 hOBFuhvk0Bu4BlOgRC1uXHHCX9Wvjzys2VM0In9w4DstaRS1G7UljrvvOk2IWqX14Zpz 1ItxKqXIfiNkGDBLXgiLwtwLE3KNo6j4964NRLUnqRmYQI71gZArVD05Hp6dqfIAmIUC Ysfg==
X-Gm-Message-State: AKGB3mIPaDBXy6g+K9wTAFSoOow9OG7Jl7mRUjzgfKmPRbSaXVsX32TQ ahYMx5GoJphBOR//s1jjGvfet/0rXrB2MAYedY4hXg==
X-Google-Smtp-Source: AGs4zMZxiB+Dpi4ae67ERA9s1nA8D1cA2DzEmjwDP1evmfD2G0K1DHdm+9g+44sI4Z/e1Oahx619oUXzMwpCGDHk3uY=
X-Received: by 10.107.170.148 with SMTP id g20mr6557218ioj.175.1512812098720; Sat, 09 Dec 2017 01:34:58 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sat, 9 Dec 2017 01:34:57 -0800
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <CAN1APdeji70wu14OB7jEe+vQA98_8mJDZxhxtuMs2MVLx53PgQ@mail.gmail.com>
References: <CAN1APdf2PEeErxCp8H62_BHG7EE07AX_HVj33xfCVtGg8bg8gw@mail.gmail.com> <CAN1APdeji70wu14OB7jEe+vQA98_8mJDZxhxtuMs2MVLx53PgQ@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Sat, 09 Dec 2017 01:34:57 -0800
Message-ID: <CAN1APddN=YZjnbmEoEvLN5cCY3iao8Kjj8WBa9sz+PevNVMPPA@mail.gmail.com>
Subject: Re: APack async header compression
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1142593ec1987a055fe50356"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/l48yA4DDfcz0ptj_Djp15HdTpDE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Dec 2017 09:35:01 -0000

I forgot to mention that a receiver must defer decoding of dynamic name
references until the EOX message has been received on the control channel,
otherwise it might read stale data. It must also perform the dynamic name
decoding before the next commit bitmap is send on the return control
channel. This still leads to some degree of HOL, but only on low data
volumes, and, the control stream could be given high priority.

Note that even if there are no dynamic updates in an exchange, or if the
sender chooses to send updated names as explicit names on the exchange
specific stream as well, the dynamic table may still depend on earlier
updates, so it is still not safe to decode until EOX has been seen. Some
mitigations could be taken to reduce this dependency, but it does not
appear to be worth the complexity, and possibly additional bandwidth
requirements.

The following is not exactly correct:

 "When this happens we xor the allocation bitmap into the free bitmap”

what we actually do is to clear the bits in the free bitmap which are set
in the allocation bitmap, which is then replaced with a new free bitmap
snapshot.

Kind Regards,
Mikkel Fahnøe Jørgensen


On 9 December 2017 at 00.54.11, Mikkel Fahnøe Jørgensen (mikkelfj@gmail.com)
wrote:


Minor correction: The receiver can include all entries with refcount zero
because it only tracks what may be evicted, not what is evicted. Eviction
happens when the sender does on actual allocation from the allocation map.
What is correct though, is that we only need to scan for zero entries when
we have are running short of things to allocate.

Old text:
Refcount zero entries are only evicted when space is needed, otherwise
we loose the history needed for efficient compression.

Kind Regards,
Mikkel Fahnøe Jørgensen


On 9 December 2017 at 00.15.01, Mikkel Fahnøe Jørgensen (mikkelfj@gmail.com)
wrote:

The receiver does not implicitly evict any dictionary entries and the
sender does not evict any entries that do not have refcount zero.
Refcount zero entries are only evicted when space is needed, otherwise
we loose the history needed for efficient compression.