[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-24 Thread Guillermo Schwarz
Dear all,

I've found this in the FAQ: 
http://code.google.com/intl/en/appengine/kb/java.html#Can_I_Pay_To_Reserve_My_JVM

Can I pay to keep a JVM reserved for my application?

We've seen this request from some developers with low-traffic
applications who'd like to reduce the percentage of loading requests
they receive. Although we have many improvements in the pipeline to
improve loading request performance, we'd like to gauge the general
interest in this feature. If you'd like to be able to reserve a JVM at
a price, please star this issue:

http://code.google.com/p/googleappengine/issues/detail?id=2456.

If there's a particular pricing scheme you're interested in, let us
know.

Cheers,
Guillermo.

On 22 mar, 10:21, Guillermo Schwarz guillermo.schw...@gmail.com
wrote:
  My wild guess is that Google still has some work to do in terms of balancing
  the load and preventing poorly written code in one app from causing pain for
  other apps.

 Not really. The load balacer is working fine. When the application is
 loaded it is incredibly fast, so the load balancer must be working
 right. The problem is when the app is being loaded.

 In order to load the app, a kind of core file must be read from disk
 in order to represent the app state in RAM. That process takes too
 long (used to be up to 3 secs, now it is up to 12 seconds AFAIK)
 because:

 1. Some applications can't be unloaded at all (they are using the
 queue to ping themselves) which leaves less free RAM. When apps ping
 themselves GAE shouldn´t take those pings into account in order to
 free some memory.
 2. The disk reading takes a lot of time. Probably this shouldn't take
 longer than 500 ms. Let me explain. Even if the war file is huge, it
 can be divided in multiple disks and loaded very fast. Probably using
 SSDs would speed things up a bit.

 I haven't seen the logs of GAE (not of the apps but of GAE itself) but
 I guess one of those problems is consuming most of the time.

 Cheers,
 Guillermo.

 On 22 mar, 09:30, James Koch jamesk...@gmail.com wrote:

  Jake,

  I don't know enough about the GAE internals to do anything more than
  speculate on root causes and interactions between the symptoms I've seen.
  Unfortunately Google staff have their lips sealed.  Don Schwartz engaged
  with me for a few hours, asked me some questions, then went silent for two
  weeks now and hasn't responded to my follow-up.

  My wild guess is that Google still has some work to do in terms of balancing
  the load and preventing poorly written code in one app from causing pain for
  other apps.

  James

  -Original Message-
  From: google-appengine-java@googlegroups.com

  [mailto:google-appengine-j...@googlegroups.com] On Behalf Of Jake
  Sent: Friday, March 19, 2010 8:56 AM
  To: Google App Engine for Java
  Subject: [appengine-java] Re: App instance recycling and response times - is
  there solution?

  Hey James,

  Also thanks for the clarification.  It hadn't occurred to me that what
  appeared to be frequent restarts could be an additional JVM.  I'm
  still not entirely familiar with that concept, but I get the basic
  idea that requests served to the same client may not always come from
  the same instance of my application.  As the only traffic I've seen
  is...me...I just assumed it was all one instance.

  Anyways, are issues #1-4 really linked together?  I'm less concerned
  about slow startup than constant startup.  Also, while I haven't read
  the ENTIRE thing, Issue #2456 talks about paying to keep a warm JVM,
  which I'm not interested in...  I don't mind a 6-10 (or 15 second)
  delay on the first request in, say, the span of an hour.  I just mind
  it when it's every single request.

  Jake

  On Mar 18, 1:44 pm, James Koch jamesk...@gmail.com wrote:
   In my short time using GAE I've seen several issues discussed under the
   label response times.  The lines between these issues are fuzzy, and we
   aren't all talking about response times using the same semantics.  As an
   example, Jake, you might not be seeing frequent restarts, you could also
  be
   seeing spinup of additional JVMs (even though you're low-traffic like me).

   Maybe enumerating them will help us all pull in the same direction?  Here
   are the issues I've seen mentioned:

   1 - Slow JVM startup speed (5-7s for something that uses JDO and no other
   frameworks)

   2 - Not affecting me personally, but startup cost of other frameworks
   (Struts, etc.) has definitely been mentioned.

   3 - Frequent JVM restarts (after 1 min of inactivity) - This interval
  feels
   too short to me, as a small app developer.

   4 - Frequent server overload caused by OTHER apps, which cause a request
   to be re-routed to a new JVM instead of a warm one, thus incurring the
   startup penalty regardless of user activity levels.

   5 - Request was aborted after waiting too long on normally fast-loading
   pages.  Presumably similar to #3 (caused by server overload from OTHER
   apps

Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-24 Thread Jeff Schnitzer
On Mon, Mar 22, 2010 at 7:21 AM, Guillermo Schwarz
guillermo.schw...@gmail.com wrote:

 In order to load the app, a kind of core file must be read from disk
 in order to represent the app state in RAM. That process takes too
 long (used to be up to 3 secs, now it is up to 12 seconds AFAIK)
 because:

When (re-)loading our apps, we see the full startup process; appengine
doesn't appear to serialize them to disk the way your laptop might go
in and out of hibernation.

I suspect the hot server theory is more likely.

Jeff

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



[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-24 Thread Guillermo Schwarz
It makes sense because web server apps are staless anyway, so what
would be the point of storing the state?

The only problem would be that Spring apps take so long to start up.
Anyway, I think the problem is something else, because when loaded the
application is very fast and I'm not using Spring or any other thingy
that could cause the application to use more than a sec to load.

Still the app sometimes takes up to 15 secs to load.

Cheers,
Guillermo.

On 24 mar, 17:08, Jeff Schnitzer j...@infohazard.org wrote:

 When (re-)loading our apps, we see the full startup process; appengine
 doesn't appear to serialize them to disk the way your laptop might go
 in and out of hibernation.

 I suspect the hot server theory is more likely.

 Jeff

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



Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-17 Thread James Koch
As a followup, today (3/17) from 1-3PM PST I received several
instances of Request
was aborted after waiting too long to attempt to service your request. This
is on my app w/ zero users, just 3 requests/minute of a blank page as a test
load.


On Thu, Mar 11, 2010 at 1:50 PM, Don Schwarz schwa...@google.com wrote:

 Can you respond privately with your app id?

 On Thu, Mar 11, 2010 at 10:10 AM, James jamesk...@gmail.com wrote:

 I setup some pings of my add a few minutes ago, and I'm still seeing
 recycling :(

 My ping setup can't go lower than 60s intervals, so I have two running
 concurrently.  Here's a sample of 20 log entries over 10 minutes,
 with .  Three recyclings occur, and they happen less than 10s after a
 previous request.  Really Google, you're killing my JVM after TEN
 SECONDS?  And I get to pay you for the ton of CPU each startup uses?
 Sounds like the more recycling, the more profitable the App Engine
 becomes.


 -
 * 03-11 08:02AM 38.506 /?Pragma=no-cache 200 2158ms 2235cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:02AM 23.144 /?Pragma=no-cache 200 53ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:01AM 06.134 /?Pragma=no-cache 200 75ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 51.707 /?Pragma=no-cache 200 49ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 05.823 /?Pragma=no-cache 200 49ms 58cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 51.499 /?Pragma=no-cache 200 56ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 05.584 /?Pragma=no-cache 200 47ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 51.274 /?Pragma=no-cache 200 61ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 05.371 /?Pragma=no-cache 200 64ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:57AM 51.025 /?Pragma=no-cache 200 74ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 * 03-11 07:56AM 57.327 /?Pragma=no-cache 200 7835ms 2119cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:56AM 50.784 /?Pragma=no-cache 200 75ms 58cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:55AM 57.008 /?Pragma=no-cache 200 50ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 * 03-11 07:55AM 46.384 /?Pragma=no-cache 200 4250ms 2060cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 56.782 /?Pragma=no-cache 200 70ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 46.157 /?Pragma=no-cache 200 54ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 56.586 /?Pragma=no-cache 200 52ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 45.934 /?Pragma=no-cache 200 51ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 56.240 /?Pragma=no-cache 200 62ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 45.718 /?Pragma=no-cache 200 57ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 -



 On Jan 30, 11:02 pm, Alyxandor a.revolution.ultra.b...@gmail.com
 wrote:
  If you are experiencing failed requests on your long-running /
  requests, consider performing some kind of pre-warming procedure of
  your own...  If you are getting timeout errors, Ping a do-nothing url,
  and wait for it to return before running the big job.  If it's a big
  job, users should expect to wait anyway {and you should tell them they
  are waiting!}, so the ping ensures {almost} that a warm JVM is running
  in the server nearest said users, and then the big /request can
  {usually} avoid getting killed with extra spin up time.  Very unlucky
  users would get a /ping on an old JVM, and /request a new one, but...
  Technology isn't perfect...  YET!

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.


  --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.


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

[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-12 Thread xcdesz
This is NOT just a problem with Spring -- stop talking like
optimization is going to fix things.  It takes too much time for a
naked servlet to load (i.e; 5-10 seconds).  The only jars that I have
are for JPA.

On Jan 12, 8:32 pm, Jeff Schnitzer j...@infohazard.org wrote:
 I've been thinking about this issue a little.  It's not quite as
 straightforward as just keeping an instance warm.  Even if you have an
 app that gets multiple hits per second, there will still be cold
 starts:

  * When a new instance comes online to serve more demand.
  * When you redeploy a version of your app.

 Is appengine smart about letting new instances added to the pool warm
 up before serving requests?  It's hard to tell from my logs but it
 doesn't look like it.

 I know appengine is *not* smart about warming up an instance before
 redeploying.  When I redeploy, some large number of users must wait
 while the appserver(s) startup.

 One thing to keep in mind during these discussions is how other Java
 EE environments solve this problem:  They *don't*.  For a long time
 it's been assumed in the EE development that server initialization
 time is irrelevant, and we grew fat libraries that take tens of
 seconds to minutes to start up.  The problem is, this time has *never*
 been irrelevant - even in a production environment you must deploy new
 versions of your app, and none of the appservers I'm familiar with are
 smart enough to keep serving off the old version while the new one
 loads.  Users with unlucky timing always got screwed.

 We just didn't care because we only deployed code once a week and we
 added/removed server instances far less often than that.  Well guess
 what, now it's easy - you can deploy up to 1,000 times per day just by
 clicking a button in eclipse, and server provisioning is now not only
 trivial but 100% transparent to you.  Just try that with WebSphere!

 You aren't going to like this, but here's the only answer that isn't
 going to piss off your customers:  Stop using Spring.  Stop performing
 eager initialization.  Stop assuming that users don't see startup
 time.  Yes, change the way you write code.

 Jeff



 On Tue, Jan 12, 2010 at 1:11 PM, Don Schwarz schwa...@google.com wrote:
  Make sure you are using offline precompilation.  We are always working on
  optimizations to decrease the latency of loading requests, but here are some
  other tips:
 http://googleappengine.blogspot.com/2009/12/request-performance-in-ja...
  On Tue, Jan 12, 2010 at 3:01 PM, Locke locke2...@gmail.com wrote:

  I agree that making users wait 20 seconds for your app to load is not
  adequate for the vast majority of apps. I also agree that
  reengineering everything to try and hide load times from users is a
  poor solution in most cases.

  Using cron to keep your app loaded will not consume your quota; it
  will actually conserve your quota. Every time your app loads you will
  be billed for 20s of CPU time. If you keep it loaded, you will only be
  billed for a few milliseconds per 'keep-alive' cron execution.

  However, the Google engineers who post here have recommended against
  doing this. If everyone did it, appengine might run out of resources
  (RAM, I assume).

  I imagine that Google will need to either find a way to load apps in
  1/10th the time (the ideal solution), raise prices significantly, or
  ration  resources in some other way.

  If I may make a suggestion to the Google engineers: offer a keep my
  app loaded option and make it available ONLY for billing-enabled
  apps. Disable cron for apps which are not billing-enabled, so that
  people who just want free hosting or are merely toying with appengine
  won't be using up resources all the time.

  This way, the people who have shown that they are serious about
  appengine (by laying their cash down) won't be driven away by the
  people who are just fooling with it.

  Yes, we are seriously considering something like this.  Please star this
  issue for updates:
 http://code.google.com/p/googleappengine/issues/detail?id=2456

  On Jan 12, 1:43 pm, Konrad konradpaw...@gmail.com wrote:
   I asked same question on Stack Overflow (http://stackoverflow.com/
   questions/2051036/google-app-engine-application-instance-recycling-and-
   response-times).

   So far proposed solutions (in SO thread and found on other websites)
   do not satisfy me. Creating cron or any other kind of periodic HTTP
   requests to keep instance up and running make no sense. First - there
   is no evidence that this instance will serve next coming request (eg.
   from different network location etc.), second - it will consume Quota
   (which is less a problem).

   Other solution - refactoring app - replacing critical functionality
   with lightweight servlet - sounds better, but is GAE forcing to go
   back to CGI programming style? And I could replace let say - API
   calls, but to keep UI in better performance shape I would need to
   throw away Spring MVC.

   Can anyone 

[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-11 Thread James
I setup some pings of my add a few minutes ago, and I'm still seeing
recycling :(

My ping setup can't go lower than 60s intervals, so I have two running
concurrently.  Here's a sample of 20 log entries over 10 minutes,
with .  Three recyclings occur, and they happen less than 10s after a
previous request.  Really Google, you're killing my JVM after TEN
SECONDS?  And I get to pay you for the ton of CPU each startup uses?
Sounds like the more recycling, the more profitable the App Engine
becomes.


-
* 03-11 08:02AM 38.506 /?Pragma=no-cache 200 2158ms 2235cpu_ms 0kb
Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:02AM 23.144 /?Pragma=no-cache 200 53ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:01AM 06.134 /?Pragma=no-cache 200 75ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 51.707 /?Pragma=no-cache 200 49ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 05.823 /?Pragma=no-cache 200 49ms 58cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 51.499 /?Pragma=no-cache 200 56ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 05.584 /?Pragma=no-cache 200 47ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 51.274 /?Pragma=no-cache 200 61ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 05.371 /?Pragma=no-cache 200 64ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:57AM 51.025 /?Pragma=no-cache 200 74ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
* 03-11 07:56AM 57.327 /?Pragma=no-cache 200 7835ms 2119cpu_ms 0kb
Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:56AM 50.784 /?Pragma=no-cache 200 75ms 58cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:55AM 57.008 /?Pragma=no-cache 200 50ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
* 03-11 07:55AM 46.384 /?Pragma=no-cache 200 4250ms 2060cpu_ms 0kb
Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 56.782 /?Pragma=no-cache 200 70ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 46.157 /?Pragma=no-cache 200 54ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 56.586 /?Pragma=no-cache 200 52ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 45.934 /?Pragma=no-cache 200 51ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 56.240 /?Pragma=no-cache 200 62ms 38cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 45.718 /?Pragma=no-cache 200 57ms 19cpu_ms 0kb Site 24
X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
-



On Jan 30, 11:02 pm, Alyxandor a.revolution.ultra.b...@gmail.com
wrote:
 If you are experiencing failed requests on your long-running /
 requests, consider performing some kind of pre-warming procedure of
 your own...  If you are getting timeout errors, Ping a do-nothing url,
 and wait for it to return before running the big job.  If it's a big
 job, users should expect to wait anyway {and you should tell them they
 are waiting!}, so the ping ensures {almost} that a warm JVM is running
 in the server nearest said users, and then the big /request can
 {usually} avoid getting killed with extra spin up time.  Very unlucky
 users would get a /ping on an old JVM, and /request a new one, but...
 Technology isn't perfect...  YET!

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



Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-11 Thread Don Schwarz
Can you respond privately with your app id?

On Thu, Mar 11, 2010 at 10:10 AM, James jamesk...@gmail.com wrote:

 I setup some pings of my add a few minutes ago, and I'm still seeing
 recycling :(

 My ping setup can't go lower than 60s intervals, so I have two running
 concurrently.  Here's a sample of 20 log entries over 10 minutes,
 with .  Three recyclings occur, and they happen less than 10s after a
 previous request.  Really Google, you're killing my JVM after TEN
 SECONDS?  And I get to pay you for the ton of CPU each startup uses?
 Sounds like the more recycling, the more profitable the App Engine
 becomes.


 -
 * 03-11 08:02AM 38.506 /?Pragma=no-cache 200 2158ms 2235cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:02AM 23.144 /?Pragma=no-cache 200 53ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:01AM 06.134 /?Pragma=no-cache 200 75ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 51.707 /?Pragma=no-cache 200 49ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 08:00AM 05.823 /?Pragma=no-cache 200 49ms 58cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 51.499 /?Pragma=no-cache 200 56ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:59AM 05.584 /?Pragma=no-cache 200 47ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 51.274 /?Pragma=no-cache 200 61ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:58AM 05.371 /?Pragma=no-cache 200 64ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:57AM 51.025 /?Pragma=no-cache 200 74ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 * 03-11 07:56AM 57.327 /?Pragma=no-cache 200 7835ms 2119cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:56AM 50.784 /?Pragma=no-cache 200 75ms 58cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:55AM 57.008 /?Pragma=no-cache 200 50ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 * 03-11 07:55AM 46.384 /?Pragma=no-cache 200 4250ms 2060cpu_ms 0kb
 Site 24 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 56.782 /?Pragma=no-cache 200 70ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:54AM 46.157 /?Pragma=no-cache 200 54ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 56.586 /?Pragma=no-cache 200 52ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:53AM 45.934 /?Pragma=no-cache 200 51ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 56.240 /?Pragma=no-cache 200 62ms 38cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
  03-11 07:52AM 45.718 /?Pragma=no-cache 200 57ms 19cpu_ms 0kb Site 24
 X 7 RPT-HTTPClient/0.3-3E,gzip(gfe)
 -



 On Jan 30, 11:02 pm, Alyxandor a.revolution.ultra.b...@gmail.com
 wrote:
  If you are experiencing failed requests on your long-running /
  requests, consider performing some kind of pre-warming procedure of
  your own...  If you are getting timeout errors, Ping a do-nothing url,
  and wait for it to return before running the big job.  If it's a big
  job, users should expect to wait anyway {and you should tell them they
  are waiting!}, so the ping ensures {almost} that a warm JVM is running
  in the server nearest said users, and then the big /request can
  {usually} avoid getting killed with extra spin up time.  Very unlucky
  users would get a /ping on an old JVM, and /request a new one, but...
  Technology isn't perfect...  YET!

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.



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



[appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-30 Thread Alyxandor
If you are experiencing failed requests on your long-running /
requests, consider performing some kind of pre-warming procedure of
your own...  If you are getting timeout errors, Ping a do-nothing url,
and wait for it to return before running the big job.  If it's a big
job, users should expect to wait anyway {and you should tell them they
are waiting!}, so the ping ensures {almost} that a warm JVM is running
in the server nearest said users, and then the big /request can
{usually} avoid getting killed with extra spin up time.  Very unlucky
users would get a /ping on an old JVM, and /request a new one, but...
Technology isn't perfect...  YET!

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



Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-14 Thread 杨浩
治本只能等GAE的升级了,这样确实只能保证你的应用不会因为两分钟没有请求被关闭!
不知道GAE收费版本是不是没有这个问题

2010/1/13 yjun hu itswa...@gmail.com

 治标不治本

 On Wed, Jan 13, 2010 at 1:24 PM, 杨浩 skzr@gmail.com wrote:

 create a cron:every one minutes to run for keep your app online in the
 GAE!
 I try it,and it is work very good!


 --
 dream or truth


-- 

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.



Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-14 Thread Stephan Hartmann
Jeff,

in one point i disagree.

In a high available einvironment you would have a cluster of load balanced
application servers and you would deploy new versions of your app in turn,
one at a time.
So if one instance is down the other(s) will continue serving your users
(though it might require sticky sessions).
Of course, this is a must for enterprise applications.

Regards,
Stephan


2010/1/13 Jeff Schnitzer j...@infohazard.org

 I've been thinking about this issue a little.  It's not quite as
 straightforward as just keeping an instance warm.  Even if you have an
 app that gets multiple hits per second, there will still be cold
 starts:

  * When a new instance comes online to serve more demand.
  * When you redeploy a version of your app.

 Is appengine smart about letting new instances added to the pool warm
 up before serving requests?  It's hard to tell from my logs but it
 doesn't look like it.

 I know appengine is *not* smart about warming up an instance before
 redeploying.  When I redeploy, some large number of users must wait
 while the appserver(s) startup.

 One thing to keep in mind during these discussions is how other Java
 EE environments solve this problem:  They *don't*.  For a long time
 it's been assumed in the EE development that server initialization
 time is irrelevant, and we grew fat libraries that take tens of
 seconds to minutes to start up.  The problem is, this time has *never*
 been irrelevant - even in a production environment you must deploy new
 versions of your app, and none of the appservers I'm familiar with are
 smart enough to keep serving off the old version while the new one
 loads.  Users with unlucky timing always got screwed.

 We just didn't care because we only deployed code once a week and we
 added/removed server instances far less often than that.  Well guess
 what, now it's easy - you can deploy up to 1,000 times per day just by
 clicking a button in eclipse, and server provisioning is now not only
 trivial but 100% transparent to you.  Just try that with WebSphere!

 You aren't going to like this, but here's the only answer that isn't
 going to piss off your customers:  Stop using Spring.  Stop performing
 eager initialization.  Stop assuming that users don't see startup
 time.  Yes, change the way you write code.

 Jeff

 On Tue, Jan 12, 2010 at 1:11 PM, Don Schwarz schwa...@google.com wrote:
  Make sure you are using offline precompilation.  We are always working on
  optimizations to decrease the latency of loading requests, but here are
 some
  other tips:
 
 http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html
  On Tue, Jan 12, 2010 at 3:01 PM, Locke locke2...@gmail.com wrote:
 
  I agree that making users wait 20 seconds for your app to load is not
  adequate for the vast majority of apps. I also agree that
  reengineering everything to try and hide load times from users is a
  poor solution in most cases.
 
  Using cron to keep your app loaded will not consume your quota; it
  will actually conserve your quota. Every time your app loads you will
  be billed for 20s of CPU time. If you keep it loaded, you will only be
  billed for a few milliseconds per 'keep-alive' cron execution.
 
  However, the Google engineers who post here have recommended against
  doing this. If everyone did it, appengine might run out of resources
  (RAM, I assume).
 
  I imagine that Google will need to either find a way to load apps in
  1/10th the time (the ideal solution), raise prices significantly, or
  ration  resources in some other way.
 
  If I may make a suggestion to the Google engineers: offer a keep my
  app loaded option and make it available ONLY for billing-enabled
  apps. Disable cron for apps which are not billing-enabled, so that
  people who just want free hosting or are merely toying with appengine
  won't be using up resources all the time.
 
  This way, the people who have shown that they are serious about
  appengine (by laying their cash down) won't be driven away by the
  people who are just fooling with it.
 
  Yes, we are seriously considering something like this.  Please star this
  issue for updates:
  http://code.google.com/p/googleappengine/issues/detail?id=2456
 
 
  On Jan 12, 1:43 pm, Konrad konradpaw...@gmail.com wrote:
   I asked same question on Stack Overflow (http://stackoverflow.com/
  
 questions/2051036/google-app-engine-application-instance-recycling-and-
   response-times).
  
   So far proposed solutions (in SO thread and found on other websites)
   do not satisfy me. Creating cron or any other kind of periodic HTTP
   requests to keep instance up and running make no sense. First - there
   is no evidence that this instance will serve next coming request (eg.
   from different network location etc.), second - it will consume Quota
   (which is less a problem).
  
   Other solution - refactoring app - replacing critical functionality
   with lightweight servlet - sounds better, but is GAE forcing to go
 

Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-14 Thread Jeff Schnitzer
On Thu, Jan 14, 2010 at 12:59 PM, Stephan Hartmann hartm...@metamesh.de wrote:
 Jeff,

 in one point i disagree.

 In a high available einvironment you would have a cluster of load balanced
 application servers and you would deploy new versions of your app in turn,
 one at a time.
 So if one instance is down the other(s) will continue serving your users
 (though it might require sticky sessions).
 Of course, this is a must for enterprise applications.

In theory, yes.  In practice, you often have a clustered, replicated
cache which (depending on your code change) may or may not gracefully
handle swapping out code on one server at a time.  Also, you'll lose
session state - unless have replicated sessions, which also might not
survive your code changes.  Of course, replicating sessions further
decreases your scalability.

I've spent most of the last decade deploying big enterprise systems
like this and they really don't work quite like the advertising
literature says.  It has required a few changes in my coding practice,
but I'm much happier with the GAE approach.

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




Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-14 Thread 风笑雪
I've tried this, but after 1 day, GAE recycled my instance every 40 seconds.
Then I used task queue to request my site per 30 seconds, but GAE
started to recycle every 20 seconds.

So I don't think it's a good way.

2010/1/13 杨浩 skzr@gmail.com:
 create a cron:every one minutes to run for keep your app online in the GAE!
 I try it,and it is work very good!

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


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




[appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-13 Thread A1programmer
I don't have time to go into details, so this is a 10,000 ft view, but
perhaps you could potentially extend the base spring context listener
to work with the distributed cache (or some other mechanism between
web apps) which keeps an instance of springs context so that it
doesn't have to be repeatedly loaded.

Also, you could write another Servlet which clears the context
instance when you actually do need it to be reloaded.

Hope this helps.

- Derrick


On Jan 12, 11:40 am, Konrad konradpaw...@gmail.com wrote:
 Hi,

 I decided to do some long-run performance tests on my application. I
 created some small client hitting app every 5-30 minutes and I run 3-5
 of threads with such client.

 I noticed huge differenced in response times and started to
 investigate issue. I found reason very quick.
 I am experiencing same issues as described in following topics:

 http://groups.google.com/group/google-appengine/browse_thread/thread/...

 http://groups.google.com/group/google-appengine/browse_thread/thread/...

 http://groups.google.com/group/google-appengine-java/browse_thread/th...

 I am using Springframework, it tkes around 18-20s to start app
 instance, which is causing response times to take from 1s (when
 requests hits running app - very rare) to 22s when fresh application
 is created.

 Is there any solution for this?
 I was thinking about creating most basic servlet performing critical
 tasks (serving API call) and leave UI as is.
 But then I would loose all benefits of Springframework.

 Is there any solution for this?

 After solving (hacking) numerous constrains of App Engine which I hit
 while developing my app that is the one I think will make me move out
 of App Engine... that's simply to much to all the time think how to
 win with GAE problems than how to solve my application problems...

 Any help?

 Regards
 Konrad
-- 
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.




[appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-12 Thread Konrad
I asked same question on Stack Overflow (http://stackoverflow.com/
questions/2051036/google-app-engine-application-instance-recycling-and-
response-times).

So far proposed solutions (in SO thread and found on other websites)
do not satisfy me. Creating cron or any other kind of periodic HTTP
requests to keep instance up and running make no sense. First - there
is no evidence that this instance will serve next coming request (eg.
from different network location etc.), second - it will consume Quota
(which is less a problem).

Other solution - refactoring app - replacing critical functionality
with lightweight servlet - sounds better, but is GAE forcing to go
back to CGI programming style? And I could replace let say - API
calls, but to keep UI in better performance shape I would need to
throw away Spring MVC.

Can anyone confirm that this behavior will not be fixed (yes fixed -
as I think it is a blocker for any serious GAE usage)? Or can anyone
suggest different solution?

Thanks
Konrad
-- 
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.




Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-12 Thread Don Schwarz
Make sure you are using offline precompilation.  We are always working on
optimizations to decrease the latency of loading requests, but here are some
other tips:

http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html

On Tue, Jan 12, 2010 at 3:01 PM, Locke locke2...@gmail.com wrote:

 I agree that making users wait 20 seconds for your app to load is not
 adequate for the vast majority of apps. I also agree that
 reengineering everything to try and hide load times from users is a
 poor solution in most cases.

 Using cron to keep your app loaded will not consume your quota; it
 will actually conserve your quota. Every time your app loads you will
 be billed for 20s of CPU time. If you keep it loaded, you will only be
 billed for a few milliseconds per 'keep-alive' cron execution.

 However, the Google engineers who post here have recommended against
 doing this. If everyone did it, appengine might run out of resources
 (RAM, I assume).

 I imagine that Google will need to either find a way to load apps in
 1/10th the time (the ideal solution), raise prices significantly, or
 ration  resources in some other way.

 If I may make a suggestion to the Google engineers: offer a keep my
 app loaded option and make it available ONLY for billing-enabled
 apps. Disable cron for apps which are not billing-enabled, so that
 people who just want free hosting or are merely toying with appengine
 won't be using up resources all the time.

 This way, the people who have shown that they are serious about
 appengine (by laying their cash down) won't be driven away by the
 people who are just fooling with it.


Yes, we are seriously considering something like this.  Please star this
issue for updates:

http://code.google.com/p/googleappengine/issues/detail?id=2456


 On Jan 12, 1:43 pm, Konrad konradpaw...@gmail.com wrote:
  I asked same question on Stack Overflow (http://stackoverflow.com/
  questions/2051036/google-app-engine-application-instance-recycling-and-
  response-times).
 
  So far proposed solutions (in SO thread and found on other websites)
  do not satisfy me. Creating cron or any other kind of periodic HTTP
  requests to keep instance up and running make no sense. First - there
  is no evidence that this instance will serve next coming request (eg.
  from different network location etc.), second - it will consume Quota
  (which is less a problem).
 
  Other solution - refactoring app - replacing critical functionality
  with lightweight servlet - sounds better, but is GAE forcing to go
  back to CGI programming style? And I could replace let say - API
  calls, but to keep UI in better performance shape I would need to
  throw away Spring MVC.
 
  Can anyone confirm that this behavior will not be fixed (yes fixed -
  as I think it is a blocker for any serious GAE usage)? Or can anyone
  suggest different solution?
 
  Thanks
  Konrad

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 

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.



Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-12 Thread Jeff Schnitzer
I've been thinking about this issue a little.  It's not quite as
straightforward as just keeping an instance warm.  Even if you have an
app that gets multiple hits per second, there will still be cold
starts:

 * When a new instance comes online to serve more demand.
 * When you redeploy a version of your app.

Is appengine smart about letting new instances added to the pool warm
up before serving requests?  It's hard to tell from my logs but it
doesn't look like it.

I know appengine is *not* smart about warming up an instance before
redeploying.  When I redeploy, some large number of users must wait
while the appserver(s) startup.

One thing to keep in mind during these discussions is how other Java
EE environments solve this problem:  They *don't*.  For a long time
it's been assumed in the EE development that server initialization
time is irrelevant, and we grew fat libraries that take tens of
seconds to minutes to start up.  The problem is, this time has *never*
been irrelevant - even in a production environment you must deploy new
versions of your app, and none of the appservers I'm familiar with are
smart enough to keep serving off the old version while the new one
loads.  Users with unlucky timing always got screwed.

We just didn't care because we only deployed code once a week and we
added/removed server instances far less often than that.  Well guess
what, now it's easy - you can deploy up to 1,000 times per day just by
clicking a button in eclipse, and server provisioning is now not only
trivial but 100% transparent to you.  Just try that with WebSphere!

You aren't going to like this, but here's the only answer that isn't
going to piss off your customers:  Stop using Spring.  Stop performing
eager initialization.  Stop assuming that users don't see startup
time.  Yes, change the way you write code.

Jeff

On Tue, Jan 12, 2010 at 1:11 PM, Don Schwarz schwa...@google.com wrote:
 Make sure you are using offline precompilation.  We are always working on
 optimizations to decrease the latency of loading requests, but here are some
 other tips:
 http://googleappengine.blogspot.com/2009/12/request-performance-in-java.html
 On Tue, Jan 12, 2010 at 3:01 PM, Locke locke2...@gmail.com wrote:

 I agree that making users wait 20 seconds for your app to load is not
 adequate for the vast majority of apps. I also agree that
 reengineering everything to try and hide load times from users is a
 poor solution in most cases.

 Using cron to keep your app loaded will not consume your quota; it
 will actually conserve your quota. Every time your app loads you will
 be billed for 20s of CPU time. If you keep it loaded, you will only be
 billed for a few milliseconds per 'keep-alive' cron execution.

 However, the Google engineers who post here have recommended against
 doing this. If everyone did it, appengine might run out of resources
 (RAM, I assume).

 I imagine that Google will need to either find a way to load apps in
 1/10th the time (the ideal solution), raise prices significantly, or
 ration  resources in some other way.

 If I may make a suggestion to the Google engineers: offer a keep my
 app loaded option and make it available ONLY for billing-enabled
 apps. Disable cron for apps which are not billing-enabled, so that
 people who just want free hosting or are merely toying with appengine
 won't be using up resources all the time.

 This way, the people who have shown that they are serious about
 appengine (by laying their cash down) won't be driven away by the
 people who are just fooling with it.

 Yes, we are seriously considering something like this.  Please star this
 issue for updates:
 http://code.google.com/p/googleappengine/issues/detail?id=2456


 On Jan 12, 1:43 pm, Konrad konradpaw...@gmail.com wrote:
  I asked same question on Stack Overflow (http://stackoverflow.com/
  questions/2051036/google-app-engine-application-instance-recycling-and-
  response-times).
 
  So far proposed solutions (in SO thread and found on other websites)
  do not satisfy me. Creating cron or any other kind of periodic HTTP
  requests to keep instance up and running make no sense. First - there
  is no evidence that this instance will serve next coming request (eg.
  from different network location etc.), second - it will consume Quota
  (which is less a problem).
 
  Other solution - refactoring app - replacing critical functionality
  with lightweight servlet - sounds better, but is GAE forcing to go
  back to CGI programming style? And I could replace let say - API
  calls, but to keep UI in better performance shape I would need to
  throw away Spring MVC.
 
  Can anyone confirm that this behavior will not be fixed (yes fixed -
  as I think it is a blocker for any serious GAE usage)? Or can anyone
  suggest different solution?
 
  Thanks
  Konrad

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

Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-12 Thread Jeff Schnitzer
This is a tragedy of the commons.  It may in fact work for you right
now, and will continue to work... until it doesn't.  It will stop
working when enough people figure it out and millions of zombie
applications push the working applications out of memory.  Or Google
pulls the plug on this workaround (more likely).

It also entitles those of us with real applications that play by the
rules to call you a jerk.

Jeff

On Tue, Jan 12, 2010 at 9:24 PM, 杨浩 skzr@gmail.com wrote:
 create a cron:every one minutes to run for keep your app online in the GAE!
 I try it,and it is work very good!

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


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




Re: [appengine-java] Re: App instance recycling and response times - is there solution?

2010-01-12 Thread yjun hu
治标不治本

On Wed, Jan 13, 2010 at 1:24 PM, 杨浩 skzr@gmail.com wrote:

 create a cron:every one minutes to run for keep your app online in the GAE!
 I try it,and it is work very good!

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
dream or truth
-- 

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.