Re: Implementation Notes on Server Push

William Chan (陈智昌) <> Thu, 16 May 2013 14:14 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8B43821F8DD5 for <>; Thu, 16 May 2013 07:14:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.176
X-Spam-Status: No, score=-9.176 tagged_above=-999 required=5 tests=[AWL=0.500, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id bPPII6BuDO-r for <>; Thu, 16 May 2013 07:14:19 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id E2FE521F8D70 for <>; Thu, 16 May 2013 07:14:18 -0700 (PDT)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1Ucyuu-0008GX-53 for; Thu, 16 May 2013 14:12:24 +0000
Resent-Date: Thu, 16 May 2013 14:12:24 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1Ucyud-0008Ec-NH for; Thu, 16 May 2013 14:12:07 +0000
Received: from ([]) by with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <>) id 1Ucyuc-0007nP-Ky for; Thu, 16 May 2013 14:12:07 +0000
Received: by with SMTP id z10so1066739qcx.0 for <>; Thu, 16 May 2013 07:11:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=+/3cVOb0Yh+G5rRgpZPianI4cLb09948/yU1kQq1S/o=; b=NotPl2FX9jtj7znKRIQXZT8qNSawtU4zeT62/6I2oR/VTmPYL/70egVQ5ouLCV7M1k V9Sdgun0Nesvy/P5ypAS/A6Uty2AcIer0X38xpAq6nBYS6O2syvTjE3yDN/sSfawj22i 542bw4FTe/EP+RI33u3OfocnNkHrjb8g5FEIdD9Q0P5PBfDG7tPtCh6TbtnMarjZT7st R/ymIt3OgWgXkSivN9G4AokVXNPiQg71mLh0net4UYsuMXCHKWxhObb2D8ZUgehQNEvT Op7I8V7sRAWT0GVxImpwC+29q0pJ34W/OwaMTKVVJn86OEM5hdgt73N6hJbzmofpCOjX yIqg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=google; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=+/3cVOb0Yh+G5rRgpZPianI4cLb09948/yU1kQq1S/o=; b=obuVCTNsY8+rGbrtdediooiHmcHQPMKQ0YfAC5OV7sFKRVki68dzK0h89UUfYA3qQI /B5ntYrCpagv7EI8AHXpk1wvUeWgHAR3lT5AFuhElmn5Ad7QG6Rp1jKmzBtaDa1uYR69 P16VR5C1QPtK0ym5Ok/BIBNFdiaU8undSq3O4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :x-gm-message-state; bh=+/3cVOb0Yh+G5rRgpZPianI4cLb09948/yU1kQq1S/o=; b=fMWrUvqXDM/dIRUitkuG9gNfwhqUFE/Meg2m8Z5uxZBLKS0ooUcW35ZZCwp/q/doGA n3suMSt1OPp/Kq7adPpRkalhujLJUUd3t4pKsBfWoMvzpShhbwM3vxxOun9BNh3lwO5b 0S+VO/ou52rY/fQzvLwAK37TXFz+OkDVfdAyuqXdbce37lXKcpWVardiNQqVtLVWBYgC 7uWCzltge2zHuYtxkOGXBILZ66WgIAjPLcIZTbUYIsMpH4orbOLj/v8xx71nt5dBcwRc 0mvu5WXRddl6yB6hVzlyOn+syYmZZv2ni3GCC9ODseMxlASUXbxzRzgqjugvC6QC3I8R +2KQ==
MIME-Version: 1.0
X-Received: by with SMTP id w7mr22230410qec.46.1368713500903; Thu, 16 May 2013 07:11:40 -0700 (PDT)
Received: by with HTTP; Thu, 16 May 2013 07:11:40 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <>
Date: Thu, 16 May 2013 11:11:40 -0300
X-Google-Sender-Auth: vcdGUGNrQUZNhp2vebQv898nhT0
Message-ID: <>
From: =?UTF-8?B?V2lsbGlhbSBDaGFuICjpmYjmmbrmmIwp?= <>
To: Patrick McManus <>
Cc: HTTP Working Group <>
Content-Type: multipart/alternative; boundary=047d7bd75744058c1304dcd67291
X-Gm-Message-State: ALoCoQm9ib4EtD+jbHHWfkPYoLT8B5Ws43TiRFJH4GxwgkPKDjXSZeApWyL6lwIe1PUnv7ZWzdZwqLD//8s8QlTvi+anhZpeRG1+KXgNhXFjF3T/VzqDYpGT3qhcwuiIGi9NBTx2yP3XGS/uth1KDD1WWhZrKLbmfPUaoSpNa4h21evanqczD5u4ccQKzzFjo0GjN3PQfuba
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-3.8
X-W3C-Hub-Spam-Report: AWL=-2.419, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.629, SPF_PASS=-0.001
X-W3C-Scan-Sig: 1Ucyuc-0007nP-Ky 7242d8669244fe39a53f401518cda958
Subject: Re: Implementation Notes on Server Push
Archived-At: <>
X-Mailing-List: <> archive/latest/18014
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On Wed, May 15, 2013 at 6:59 PM, Patrick McManus <>wrote;wrote:

> On Wed, May 15, 2013 at 5:41 PM, William Chan (陈智昌) <
> > wrote:
>>> Its a particular quandary on mobile. The RTT is certainly costlier.. but
>>> storage is costlier too and more importantly to me the data transfer can be
>>> exceptionally expensive.
>> When you say storage, do you mean memory or disk?
> could be either, or both. depending on deployment.
>> What do you think about SETTINGS_MAX_CONCURRENT_STREAMS vs flow control
>> here?
> deserves experimentation.. though flow control seems more fine grained to
> me.

It depends. Both are just knobs with partial control. Stream flow control
needs to leave the window large enough to save RTTs, but can put a cap on
how much any single response can be. But it doesn't really help if you just
open a bunch of streams. Connection flow control is too coarse grained
though, since it's shared by pull streams. Martin's proposal is pretty
simple, yet useful. I like it. It's a specific instance of stream group
flow control, much like connection flow control is. But it seems to serve a
good purpose and doesn't require a group definition mechanism, since
connection and directionality of streams are good definitions for
establishing the groupings.

That said, I'd like to hold back from adding any mechanisms unless we have
implementers that will commit to experimenting with it.

I think a lot of this also goes back to whether or not we want to define
strict mechanisms in the protocol for controlling this, or we want to
advertise hints in the semantic layer (HTTP client hints or whatever).

Yeah, we need to experiment. I think your current flow control usage is
interesting and probably a good idea. You guys are way ahead of us on
tuning push :) We're still in the ironing out bug phase.

>> Also, when you say an established sink, how about the browser cache?
> For a pretty significant set of deployments I would rather wait 1 rtt than
> deal with storage i/o :)

Hah, fair enough :)