On Fri, May 13, 2011 at 6:21 AM, Brandon Wirtz <[email protected]> wrote:
>
> OR… (and this one kills me)
>
> User: I need a  big file
> APP: I don’t have that in memcache let me go get that for you
>
> 110ms later…
>
> DataStore: Here is that file you asked for its big.
> App: Yeah I know and this user is on dial up. They Suck


App Engine i/o is fully buffered. Your instance is done and ready to
serve a new request once it has written the current response to stdout
and returned from main. The App Engine infrastructure will dribble the
bytes back to the user as fast as possible.


> And In all three of these scenarios what I’m really paying for if I get 
> billed by instances is the
> waiting to send stuff to the user, and possibly read it out of GQL.  None of 
> this uses
>  the “Python” bits for anything useful.


Try caching your data > 1MB in the blobstore. You can then use the
send_blob() call of the BlobstoreDownloadHandler which acts like the
X-Sendfile header in some other web servers. This should return
immediately.

  
http://code.google.com/appengine/docs/python/blobstore/overview.html#Serving_a_Blob


> And I think some days this works, (so do cache control headers and the  edge
> caching such that when two people ask for the same exact thing only 1 hits my 
> APP) and
> other days it doesn’t work so much. And I don’t really know why cause I can’t 
> see the
> moving parts, only part of what is on each side of a row of magic black boxes.


So you're saying: when the engineers make a mistake the accountants
are happy? Mistakes are rewarded?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to