Re: [hybi] frame length encoding

Roberto Peon <fenix@google.com> Sun, 22 August 2010 08:16 UTC

Return-Path: <fenix@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 59DF93A67BE for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 01:16:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.719
X-Spam-Level:
X-Spam-Status: No, score=-105.719 tagged_above=-999 required=5 tests=[AWL=0.257, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vzE1KPoXf+Lo for <hybi@core3.amsl.com>; Sun, 22 Aug 2010 01:16:13 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id 7E44B3A6781 for <hybi@ietf.org>; Sun, 22 Aug 2010 01:16:13 -0700 (PDT)
Received: from kpbe11.cbf.corp.google.com (kpbe11.cbf.corp.google.com [172.25.105.75]) by smtp-out.google.com with ESMTP id o7M8GkaI025470 for <hybi@ietf.org>; Sun, 22 Aug 2010 01:16:46 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1282465007; bh=CrM72me/q2bOIogXYW3Mh99Tfbs=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=NrFcpibbqFhKGzN/qJERz+wFsXvseqQ0UTimXqKT0vMMgkHQgSsjYwDSegQSwdJUo /S+8kaoO+VLno2Lb3+xog==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=vy+HbUx02wLtifoXjl0AQDl/CobnKqQibyA8FqkZoNdhhFoVPt0mLHbCbzAxsqQT9 2WnfrwOFX59YSiCguRc0g==
Received: from ywi6 (ywi6.prod.google.com [10.192.9.6]) by kpbe11.cbf.corp.google.com with ESMTP id o7M8GjUn021826 for <hybi@ietf.org>; Sun, 22 Aug 2010 01:16:45 -0700
Received: by ywi6 with SMTP id 6so2133973ywi.36 for <hybi@ietf.org>; Sun, 22 Aug 2010 01:16:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.158.15 with SMTP id k15mr3968223ybo.71.1282465004714; Sun, 22 Aug 2010 01:16:44 -0700 (PDT)
Received: by 10.150.177.20 with HTTP; Sun, 22 Aug 2010 01:16:44 -0700 (PDT)
In-Reply-To: <5628917d835c46121071f82037969615.squirrel@sm.webmail.pair.com>
References: <AANLkTimKbmcpgx8k0uXUWvCO=8w9pPrtV=3y4qh6363k@mail.gmail.com> <alpine.DEB.2.00.1008212037190.27211@tvnag.unkk.fr> <AANLkTinrsT+wV48nHvVW_1ChGYffkq7jisU2-PZnMyKg@mail.gmail.com> <alpine.DEB.2.00.1008212123460.27211@tvnag.unkk.fr> <20ef7ed5e135c57c1ee5a741658b9d98.squirrel@sm.webmail.pair.com> <1282423311.2014.6.camel@tng> <b09e8e740ef2b5b5ec3c85a5d9dcfd08.squirrel@sm.webmail.pair.com> <AANLkTikE8+oEbviWrPO=Pi+=CHSMnCD9KYmH8EMxMktw@mail.gmail.com> <1282435090.2014.12.camel@tng> <5628917d835c46121071f82037969615.squirrel@sm.webmail.pair.com>
Date: Sun, 22 Aug 2010 01:16:44 -0700
Message-ID: <AANLkTi=RVA4GQTExr9wjLR5+jH7q8R42_MKFPnp0eQU9@mail.gmail.com>
From: Roberto Peon <fenix@google.com>
To: shelby@coolpage.com
Content-Type: multipart/alternative; boundary="00151750eda80afd57048e652761"
X-System-Of-Record: true
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] frame length encoding
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Sun, 22 Aug 2010 08:16:15 -0000

On Sat, Aug 21, 2010 at 8:23 PM, Shelby Moore <shelby@coolpage.com> wrote:

> > On Sat, 2010-08-21 at 16:59 -0400, John Tamplin wrote:
> >> On Sat, Aug 21, 2010 at 4:57 PM, Shelby Moore <shelby@coolpage.com>
> >> wrote:
> >
> >>          Can you simply rewrite
> >>         one sector on disk and the memory manager remaps?
> >>
> >>
> >> I haven't tried it personally, but I would suspect you could use
> >> TCP_CORK, write a header, use sendfile to send a chunk of the file to
> >> finish the frame, uncork, repeat until done.  I don't think there
> >> would be any extra copying involved here, but you can't just issue the
> >> sendfile and go on to the next message, you need some thread that will
> >> queue up the next frame when it is ready.
> >
> > That is correct (and I have done this personally), you need multiple
> > calls of the ZC API interleaved with the write of the chunk header.
> > There is no copying of the data through the CPU just because it requires
> > multiple calls. And there is no reason you couldn't implement some kind
> > of writev() like API that lets you interleave copied and zero-copied
> > data.
> >
> > And yes, multiple calls are more overhead than 1 call. but at 1 per 4GB,
> > it really is inconsequential.
>
> That is an extremely technical solution applicable to experienced
> sysadmins.
>
> But WebSockets is supposed to be used also by web programming amateurs.
> It is much easier for them to issue a single sendFile() call from PHP,
> Perl, Ruby, etc., without all the fuss and low-level network stack API
> synchronization.
>

No, that (amateur programmers) is not a requirement currently as I
understand things.
The expectation is that we develop the minimal featureset necessary to
ensure a robust and hopefully efficient transport.
There are different perspectives about what that featureset need be assuming
competent professional programmers, and that is how you should be looking it
it!
-=R



> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>