Re: [hybi] Multiplexing: Pre-AddChannelResponse quota

Jamie Lokier <jamie@shareable.org> Tue, 26 June 2012 22:28 UTC

Return-Path: <jamie@shareable.org>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C510F11E808E for <hybi@ietfa.amsl.com>; Tue, 26 Jun 2012 15:28:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
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 fNI1paOgeh0n for <hybi@ietfa.amsl.com>; Tue, 26 Jun 2012 15:28:37 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by ietfa.amsl.com (Postfix) with ESMTP id 37BE811E8087 for <hybi@ietf.org>; Tue, 26 Jun 2012 15:28:37 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1SjeFK-0006y4-Cp; Tue, 26 Jun 2012 23:28:30 +0100
Date: Tue, 26 Jun 2012 23:28:30 +0100
From: Jamie Lokier <jamie@shareable.org>
To: Takeshi Yoshino <tyoshino@google.com>
Message-ID: <20120626222830.GV5812@jl-vm1.vm.bytemark.co.uk>
References: <001301cd4acf$d8c5cda0$8a5168e0$@noemax.com> <CAH9hSJYzbfUKMjuV3J1-tdapV59N5aewO-nAMLMexzF2f6KosA@mail.gmail.com> <6A3569A8-C253-4363-B00C-F336B0CA3128@noemax.com> <CAH9hSJayEAqJEE7=KdYuq669HOaG76kS9AVwUMUYaPKLtO=zEw@mail.gmail.com> <000301cd503d$0aff8f00$20fead00$@noemax.com> <CAH9hSJaNpAV2WYqRr7Pf47=auvADPHusx9ipUDLvAZRhRp7iuA@mail.gmail.com> <002101cd504f$d8a20e30$89e62a90$@noemax.com> <CAH9hSJayzKB9RFNtebKNygZa2HH3crkw9ycyRPGb+BrACYwAMQ@mail.gmail.com> <20120622121738.GR5812@jl-vm1.vm.bytemark.co.uk> <CAH9hSJbngbwRAM3cMG7TH8mPhUVpvJ-LyK+3nckMuiEZbN-g6w@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAH9hSJbngbwRAM3cMG7TH8mPhUVpvJ-LyK+3nckMuiEZbN-g6w@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing: Pre-AddChannelResponse quota
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jun 2012 22:28:37 -0000

Takeshi Yoshino wrote:
>    On Fri, Jun 22, 2012 at 9:17 PM, Jamie Lokier <[1]jamie@shareable.org>
>    wrote:
> 
>    Why not just send NewChannelSlots[ADD=3], instead of 3
> 
>      NewChannelSlot messages?
>      The slot messages are wasteful if the server is happy to accept 1000
>      low-usage slots from the beginning.
> 
>    >    (C) receives FlowControl[ID=1, quota=1024]
>    >    (C) receives FlowControl[ID=2, quota=1024]
>    >    (C) receives FlowControl[ID=3, quota=1024]
>    >    Now (C) is allowed to send pre-handshake data up to 1024 for each
>    of
>    >    allocated slots.
> 
>      Why not just send NewChannelSlots[ADD=3,PER_CHANNEL_QUOTA=1024]?
> 
>    This is fine if we don't need a way to increase pre-handshake quota for
>    the slots after allocating them e.g. when the server gets more room for
>    processing after the allocation.

So how do you do it in your scheme - resend FlowControl for each slot?

In that case, do this:

   NewChannelSlots[ADD=0,PER_CHANNEL_QUOTA=2048]

I suggest the per-channel quota, is a single value available to all
new channels, not a different value per channel.  Does it make sense
to have different new-channel "sizes"?

ADD increments the available quota for new channels, while
PER_CHANNEL_QUOTA sets that, I guess.  It's not allowed to reduce the
data quota, unless we have an "optimistic" mechanism for retracting
flow control in other ways as well, which a hop-by-hop extension might
do.  The message is, in effect, a flow control allocation to each new
channel that hasn't been created yet.

However, I wonder, if it decides to have more memory, why would the
server increase the per-channel data quota instead of increasing the
number of available slots?  Is there a reason for one over the other?

There may still a case for a shared pool of pre-handshake data quota
instead, but it would need to be carefully done because memory can't
be carved up arbitrarily; a per-channel overhead factor would be needed.

-- Jamie