Ikai, it has been a week since this response from you. Do you have an ETA of when this new document will go live?
Regards, Len On Mar 8, 1:03 pm, "Ikai L (Google)" <ika...@google.com> wrote: > Michael, > > I have an answer, but it's not authoritative and it also may not be > 100% correct. If you don't mind waiting a few days, we're working on > some documentation about this which should go live soon. It's going > through peer review right now for correctness. I'll go on the main > site in the section about concurrent requests. > > > > > > On Thu, Mar 4, 2010 at 2:25 PM, Michael <michael.ol...@gmail.com> wrote: > > Hi Ikai, > > > Yes, that was me who turned up at office hours last night. Thanks for > > the response, both then and now. I've gone ahead and starred the > > issue you noted; it's an interesting proposal. > > > I understand the need forloadingtimes, but I have a question as to > > how this scales. Presumably, theloadingtimes occur as new machines > > which serve requests are added; normally, I would think that scaling > > up by only one or two instances at a time is sufficient to meet > > request per second growth. What if, however, there is a (temporary) > > exponential growth in the number of requests per second; will that > > impact the response time of all of those requests? I was going to run > > some simulations to test this, but if you already have intuition as to > > what will happen, that would be helpful. > > > To be more clear, if your application can normally be easily serviced > > by one or two instances (1 to 10 qps), but then shoots up over a very > > short span of time (less than ten seconds) to 300-500 qps, will all of > > those requests lag behind while new instances are loaded to service > > the traffic spike? That is, will the service time for each request be > > increased by theloadingtime except for those requests that are able > > to be served by the original instances? > > > Right now I'm not using any frameworks or any dependencies outside of > > XML parsing (I had to manually add XML jar files to my war's lib > > folder in order for XML parsing not to generate an error when > > deployed, even though it worked fine locally), so I would expect my > > load times to be modest. The user-facing functionality of the site > > actually does use a static page with a "loading" message while it > > queries the server, which I find very useful, but the concern over > >loadingtimes is generated by the functionality that is invisible to > > the user. > > > Thanks again for the help. If I find anything interesting out in > > testing, I'll be sure to post the results online. > > > Regards, > > - Michael > > > On Mar 4, 11:43 am, "Ikai L (Google)" <ika...@google.com> wrote: > >> Michael, > > >> (Molson from the IRC office hours?) > > >> Some small percentage of your application's requests will always be > >>loadingrequests, as this is us spinning up a new instance of your > >> application to either grow for capacity or tearing down your instance > >> and putting it back up as resource allocation demands. We can't > >> predict when this will happen. You may want to star this issue: > > >>http://code.google.com/p/googleappengine/issues/detail?id=2456 > > >> Startup time is generally a function of several different things: > > >> - Spinning up the JVM (Relatively cheap, but on the order of magnitude > >> of 500ms - 1s) > >> - How many dependencies are youloading? (Relatively cheap compared to > >> JVM spinup) > >> - Framework init (Can be VERY expensive -loadingup a dynamic > >> language runtime will always take a few seconds. Some frameworks will > >> also scan every class in your classpath. Spring, for instance, does > >> this to look for annotations eagerly on init time) > > >> Strategies to counteract these factors include optimizing for lazy > >>loading, which spreads the total load time across acess to several > >> different resources. Not many existing frameworks do this. > > >> As your application grows,loadingrequests should account for a > >> smaller and smaller percentage of your total requests. I've seen > >> solutions with rich applications that show a static pageloading > >> dynamic resources as a general landing page. This doesn't solve the > >> load time solution, but it meets the user halfway by making a web app > >> appear to load faster as opposed to causing a user's brower window to > >> be blank while waiting for a request to be handled. > > >> On Tue, Mar 2, 2010 at 4:32 PM, Michael <michael.ol...@gmail.com> wrote: > >> > Looking at my App Engine logs, I see troubling results when viewing > >> > the response times for requests. In my current log set, the first 80 > >> > requests all complete in under 100 ms with less than 100 ms of cpu or > >> > api time. Then, oddly, the 83rd request, from the exact same client > >> > with the exact same request parameters, takes 7,192 ms to respond with > >> > 10,123 cpu ms (and 12 api ms). > > >> > These kinds of spikes are dotted throughout my logs. They occur in > >> > less than 1% of cases, as far as I can tell, but the spikes are not > >> > just large; they're enormous. I know for a fact that the request > >> > parameters and returned data were identical to the requests several > >> > seconds before and after from the same client, but the request took > >> > about 20 times longer to serve. > > >> > Does anyone know what causes these large spikes in response time, and > >> > can anyone share tricks to help alleviate these spikes? I know that > >> > it is somehow related to instantiating the JVM, but I don't know: > >> > - how to reduce the startup time of the JVM > >> > - how to predict when GAE will try to start a new JVM > > >> > Thanks in advance for any advice, > >> > - Michael > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Google App Engine for Java" group. > >> > To post to this group, send email to > >> > google-appengine-j...@googlegroups.com. > >> > To unsubscribe from this group, send email to > >> > google-appengine-java+unsubscr...@googlegroups.com. > >> > For more options, visit this group > >> > athttp://groups.google.com/group/google-appengine-java?hl=en. > > >> -- > >> Ikai Lan > >> Developer Programs Engineer, Google App > >> Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine for Java" group. > > To post to this group, send email to google-appengine-j...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine-java+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine-java?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App > Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine- Hide > quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.