Re: [hybi] Multiplexing: Pre-AddChannelResponse quota

"Arman Djusupov" <arman@noemax.com> Fri, 15 June 2012 08:21 UTC

Return-Path: <arman@noemax.com>
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 6B25021F844F for <hybi@ietfa.amsl.com>; Fri, 15 Jun 2012 01:21:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 SncSD7qk1qXT for <hybi@ietfa.amsl.com>; Fri, 15 Jun 2012 01:21:39 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [64.34.201.8]) by ietfa.amsl.com (Postfix) with ESMTP id AB9F321F8449 for <hybi@ietf.org>; Fri, 15 Jun 2012 01:21:36 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; t=1339748501; x=1340353301; s=m1024; d=noemax.com; c=relaxed/relaxed; v=1; bh=8mevG7+sTlRewIgkJeb6HToM7jY=; h=From:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References; b=0v3+ZPGR8uCdTjNCX6s9pxNCLbfN0jAg1O1C+FX5nJQEQxkjyBfS/LAtbRDSoT5OQPEvuSFG1kjrEAVf2SGZSU8s2BecuiipZChnG3gxlHRQSryqi4qeI65hOWZPbtUUQ+HsdLPNuFXLak5UmEPo9i6cBTcLZfqwbbCdJNIGr9U=
Received: from mail.noemax.com by mail.noemax.com (IceWarp 10.4.1) with ASMTP (SSL) id ZOK64239; Fri, 15 Jun 2012 11:21:39 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Takeshi Yoshino' <tyoshino@google.com>
References: <CAH9hSJZUAHQzDm4ofq6onc620SNretLQDOcjSnr2eQ0YA9yFdQ@mail.gmail.com> <002f01cd3cc4$4791b380$d6b51a80$@noemax.com> <20120607034440.GD26406@jl-vm1.vm.bytemark.co.uk> <CAH9hSJZWMgvQMNLapZAg_CS0vri=jZbfPLpLhfninjzG+JxxmA@mail.gmail.com> <CAH9hSJbChf6NPUqraaeEeLnDO=YyYja4SkwZJsWRfM5VUwZ59Q@mail.gmail.com> <002001cd4a14$53eb66f0$fbc234d0$@noemax.com> <CAH9hSJbz9HQrN67=Jf6bEmJikTGEViNEqjDP8XbHKrPKhYD19Q@mail.gmail.com>
In-Reply-To: <CAH9hSJbz9HQrN67=Jf6bEmJikTGEViNEqjDP8XbHKrPKhYD19Q@mail.gmail.com>
Date: Fri, 15 Jun 2012 11:21:14 +0300
Message-ID: <001301cd4acf$d8c5cda0$8a5168e0$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0014_01CD4AE8.FE1576A0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQHbEEjWH8q2xL+U7IgUz4ieagM0MAIpCHL8APvLbp8B3rSIHAHfCnvqAiE9EN8B8r7HPJaHycvA
Content-Language: en-us
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: Fri, 15 Jun 2012 08:21:41 -0000

Since we go that far in flexibility why not just give the client a quota and
let it distribute it in the channels any way the client likes. This way the
client will be able to give a higher or lower priority to newly established
channels. The client will need to state the amount of quota it assigned to a
channel slot when sending an AddChannelRequest. So when receiving a
PreHandshakeQuota the client does not level it between available slots, but
uses a share of this quota later when creating a new channel. This would be
a simplified common quota.

 

With best regards,

Arman

 

 

From: Takeshi Yoshino [mailto:tyoshino@google.com] 
Sent: Friday, June 15, 2012 6:19 AM
To: Arman Djusupov
Cc: Jamie Lokier; hybi@ietf.org
Subject: Re: [hybi] Multiplexing: Pre-AddChannelResponse quota

 

On Thu, Jun 14, 2012 at 6:58 PM, Arman Djusupov <arman@noemax.com> wrote:

-- send quota for X is set to (PQ_i) - (total pre-handshake data sent) +
(initial send quota assigned by the AddChannelResponse)

 

The quota header in AddChannelResponse is not needed, the server can
supplement the client quota using normal flow control frames. This would
simplify it a bit. If the server needs to grant additional quota right after
the AddChannelResponse, it can send an FC block in the same frame with the
AddChannelResponse. The FC block format is more efficient than the literal
format of the AddChannelResponse header.

 

OK

 

- When received, say, PreHandshakeQuota block, split it up and add to slots
so that PQ_k are leveled (older ones first) among all slots

 

Why to split up the quota? This leave room for strange cases when the quota
is not divisible by the number of channels. Why not simply set or add a
value to each already allocated slot?

 

I tried to make it able to gradually decrease PQ_i for new slots when the
server is overloaded.

 

If PreHandshakeQuota adds the same value to each allocated slot, PQ_i for a
new channel needs to be initialized to the same value as the other slots' on
NewChannelQuota. Otherwise, PQ_i values are in-balanced between the new one
and the others. Then, ... there's no way to  decrease PQ_i.

 

We may add a new channel with slightly smaller PQ_i to allow for
suppression. This works, but one of its cons is that we cannot level PQ_i of
allocated slots even when the server gets less loaded again because the
PreHandshakeQuota keeps high slots high and low slots low.