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.
