On Sun, Jun 17, 2012 at 5:00 AM, Richard Watson
<[email protected]> wrote:
> I have a strong suspicion that disk access with many files is an issue.
>  Have you made any effort to package your classes as a jar file?

I have the same suspicion.  I have done tests in the past (packaging
it up by hand) and found about a 20% improvement in startup time.  It
was significant but not enough to justify the effort of hacking this
into the deployment process.  Of course, my project has grown since
then, so maybe it's time to revisit this.

My biggest concern is that even if I cut my startup time in half
(which I suspect is optimistic), I'm still going to be at the mercy of
a blip in GAE.   The startup time varies by a factor of 3 even when
GAE is in "normal" state.  This variability is very hard to work with,
especially since (from comments on this list) I suspect sub-20s java
instance startups are difficult to attain in real-world projects.

Another problem is that this variance makes testing hard since I have
to do statistical measurement of startup time.  It's hard to know if
changes have a real affect or are just a quirk of getting deployed to
a faster/slower part of the cluster.

I guess I have three specific complaints right now (completely
independent from specific techniques to make my app faster):

 1) Startup time should not vary this much.  If HRD latency varied by
a factor of 3, someone would probably sound an alarm.  Whatever
datasource classes are being loaded from should be more consistent
(assuming that's the problem).

 2) The deadline for startup requests is too short.  In pharmacology,
one measure of the safety of drugs is the Therapeutic Index -
basically, the ratio of the amount that will kill you divided by the
amount that you need for an effective dose.  For alcohol, it's about
10:1.  If typical startup time is 20s, then the Therapeutic Index for
GAE is 3:1 - waaaaay too close, especially considering that startup
times seem to vary by a factor of 3 normally.

 3) Google, we really need more transparency on this issue.  We have a
lot of people speculating and doing trial-and-error experiments, but
not much in the way of official guidance.  We shouldn't need to guess
what will work and what won't - please tell us what's going on, why
does a process that takes 3s on my local box take 60s+ in production?
If we understand the underlying mechanism, we can (hopefully) design
around it.

Thanks,
Jeff

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