Re: [hybi] Multiplexing: Pre-AddChannelResponse quota

Takeshi Yoshino <tyoshino@google.com> Thu, 14 June 2012 08:56 UTC

Return-Path: <tyoshino@google.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 8AB4F21F8692 for <hybi@ietfa.amsl.com>; Thu, 14 Jun 2012 01:56:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.976
X-Spam-Level:
X-Spam-Status: No, score=-102.976 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
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 MqbAOTjMmj9R for <hybi@ietfa.amsl.com>; Thu, 14 Jun 2012 01:56:08 -0700 (PDT)
Received: from mail-gh0-f172.google.com (mail-gh0-f172.google.com [209.85.160.172]) by ietfa.amsl.com (Postfix) with ESMTP id 9B1EC21F8697 for <hybi@ietf.org>; Thu, 14 Jun 2012 01:56:07 -0700 (PDT)
Received: by ghbg16 with SMTP id g16so1270577ghb.31 for <hybi@ietf.org>; Thu, 14 Jun 2012 01:56:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:x-system-of-record; bh=TEBndd0Y4lnrcCnQ8WKd56jNr+P5lwRH7373IlU3SIQ=; b=QsCrT+6H6dJS7o2ek9W/Z34hKs2GZVK8FQUFtES8CR3IaC+Fa5eNe1VL0dQrd8ASEL +gM6TYZISgeyK9QLTPQTvq08mIoJombkopvoyAMsonGZ+6uo8jFuT4LdJgSVZLTgCmrh k5LWhBeM3wfUtYN6HH9KOahdqB8oO++AYL7DiTETn3TBI8oEAX4C4i5HSlzowgpCzV1x Bo+zNUDYDYqKnqeXfEcPWC0EJmKRzDsauhkV5G8y27rogC40LIRCOy65WE8ZGNWWiqKH xQ6L8F6/0LkEGllAQkVALMyVftIgY7GpUqlWZWtMZjaMFhOwWmEvpLnokO37FTCriKcr 6vjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:x-system-of-record:x-gm-message-state; bh=TEBndd0Y4lnrcCnQ8WKd56jNr+P5lwRH7373IlU3SIQ=; b=lD3YjVJR4KfQqpyXrkvEWOz0aLmjMEq192b94Pzhd+PVAtz+S8jtqqfrINH1TZggAG 1voRlEW1SRvlvu+L+j+s6e91lhOAJBHhtoeiO2DvGce2y/7pIjTnqRIv5SGsU2EDXEb1 tPg4XxMkYiUlFi/CW/veG/+QYodCjw0H9PI6ARqu1B/tuscyOFhDdjbb3aeS1Q4vum1L Hhaz6PI+vWTLdeH9hSUaCW9qtQMpFpbTfyclJilC2z7CENqtIdrVOqQ8HJuEIhVHJO3F Anv7Sur0H/aT/ZnnixW3XJqj6TtfiJoNg/MjFSJ8p4HkqFHCBW4+mz+nDwbrLjVf8DB4 R7Xw==
Received: by 10.50.156.194 with SMTP id wg2mr330929igb.46.1339664166793; Thu, 14 Jun 2012 01:56:06 -0700 (PDT)
Received: by 10.50.156.194 with SMTP id wg2mr330923igb.46.1339664166683; Thu, 14 Jun 2012 01:56:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.231.66.7 with HTTP; Thu, 14 Jun 2012 01:55:46 -0700 (PDT)
In-Reply-To: <CAH9hSJZWMgvQMNLapZAg_CS0vri=jZbfPLpLhfninjzG+JxxmA@mail.gmail.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>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Thu, 14 Jun 2012 17:55:46 +0900
Message-ID: <CAH9hSJbChf6NPUqraaeEeLnDO=YyYja4SkwZJsWRfM5VUwZ59Q@mail.gmail.com>
To: Jamie Lokier <jamie@shareable.org>
Content-Type: multipart/alternative; boundary="e89a8f3bafd5c603f304c26ade4d"
X-System-Of-Record: true
X-Gm-Message-State: ALoCoQndwQFW7vCEo7wo2lWS0HYcr0xz9jgmH1T3pLQUbhjaj4uX1BmtvfHGa+bFA4Mj90/hHpjvElApBbaKh4zfkGa07N1mzvFsreWac4puO+TaVpp3tNIEc+OSqK/vjb6fpXmRA+2f
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: Thu, 14 Jun 2012 08:56:08 -0000

On Wed, Jun 13, 2012 at 7:18 PM, Takeshi Yoshino <tyoshino@google.com>wrote:

> On Thu, Jun 7, 2012 at 12:44 PM, Jamie Lokier <jamie@shareable.org> wrote:
>
>> If there is a max_simultaneous_handshakes - why not recast that as
>> "initial new-channels window" - meaning a flow control grant, which is
>> updated by further grants from the server.  (Very similar to the flow
>> control per channel).
>>
>
> Good idea. I'll take it.
>

I'm designing algorithm to realize this. My current idea is as follows.
Just a first strawman. It's very complicated.

- New channel window is a set of slots for new channel creation attempts
-- Each slot corresponds to one future/in-flight AddChannelRequest
-- Each slot (Slot_k) has pre-handshake quota (PQ_k)
-- When received, say, NewChannelQuota block, add a new slot. The new slot
has pre-handshake quota of 0
- When received, say, PreHandshakeQuota block, split it up and add to slots
so that PQ_k are leveled (older ones first) among all slots
- To issue an AddChannelRequest with channel ID X, the client picks oldest
unused slot (Slot_i) for it
- The client MAY send pre-handshake data for the channel X up to PQ_i
- When received the corresponding AddChannelResponse,
-- send quota for X is set to (PQ_i) - (total pre-handshake data sent) +
(initial send quota assigned by the AddChannelResponse)
-- Slot_i is removed from the new channel window

Goals are:

- make it able to increase the pre-handshake send quota for already
allocated slots
- give pre-handshake quota equally to all active slots
- carry over remaining pre-handshake quota into post-handshake quota
- deterministic, not affected by timing