To make AppEngine work for you. You have to say "I WANT TO BE GOOGLE". You
have to say "I WANT TO BUILD LEGO BLOCKS" you have to say "200MS is TOO
FRAKKING SLOW"

> Once more you are generalizing from an extremely limited problem domain.

You mean my natural language processor that has to compute the parts of
speech for every word in a document?
Or maybe my Image tool that auto-crops images so that they fit in a given
aspect ratio?
Or my content classifier that puts content in to classifications based on
the context and word usage?
Or my GEO tool that converts your IP Address to a metro, and generates best
version of ads for local targeting?
Or my SEO tool that scores a body of content against rules Google uses to
rank content?
Maybe you were talking about my widget tool that does Content relatedness
for suggesting other articles on the same topic?


> There are myriad applications that consume CPU resources - and if you're
on
> Python, the raw cost of serialization is a significant CPU hog.

Serialize in the background.
API your most CPU intensive stuff to backends.  Use light weight front ends
to handle the bulk of your requests.  Use F4's and F8s when you need bursts
of CPU power.

F1's suck at "dense" code that has lots of CPU constrained tasks.  But F4's
suck "Sparse" code that doesn't have enough CPU.
To get the best of both worlds  you need to have a mixture.

This takes getting used to. Most people haven't written for large
multi-server environments, and that is what you are really building with
Appengine.
You are building lots of microapps designed to be super efficient at the
thing they do, so that that thing fits nicely in 128M of Ram, and is
performant on a 600Mhz CPU

You can do this in 1 of two ways, you can shard your code so that frontend
instances spin up one way and explode when they get their 85th request and
your behemoth app crashes....

Or you can design for "endpoints" , "APIs" or what ever you want to call it,
where specialized instances do their thing.  In some cases this means using
the "Versions" so that you can have ThingIDoRarely.Myapp.appsot.com and
ThingMyAccountantDoes.MyApp.Appspot.com

To make AppEngine work for you. You have to say "I WANT TO BE GOOGLE". You
have to say "I WANT TO BUILD LEGO BLOCKS" you have to say "200MS is TOO
FRAKKING SLOW"

Want me to solve 50k Transactions in 1 second?
If transaction rate is < X use default
if Transaction rate is > X & < Y Use Shard
if Transaction Rate is > Y use backend

And your backend uses in instance memory, and defers to populate a
persistent record. When the transaction rate drops below a threshold you do
commits and re-merge with master.







-- 
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