Our app (http://gri.pe) feels a lot snappier after this latest bit of datastore maintenance. We've been using as much memcache as possible to avoid datastore access because prior to this maintenance, datastore access was spiky and even the simplest of queries had a small chance of timing out.
I can say for sure that some of our datastore-heavy cron jobs were taking > 200ms, but are around 70ms now.
It's a shame that the stats for > 12hrs ago seem to have been wiped. I bet we'd be seeing a marked improvement on our ms/request stat.
Unrelated question: how are you doing those cron jobs.
I tried using the task queue, but it kept timing out on me, even when I broke my tasks into smaller ones (couldn't figure out a threshold as the behavior of the datastore was totally unpredictable).
The key is to combine cron jobs with Tasks. Tasks are am easy to use and powerful feature of Google Appengine that let you deal with the standard limitations. For example, rather than doing some operation on 1000 entities in one request, you spin off 1000 tasks, each handling the operation on one entity. Read up about them at http://code.google.com/appengine/docs/python/taskqueue/
We have to break our cron jobs down into single datastore queries for them to succeed near 100% of the time. If you want more complex logic, use a cron job to trigger tasks that process smaller bits of your operation.
Even our cron job to compute the top users on our site (a simple query + ordering) uses one second of CPU time between the application and the datastore. It's just something you get used to in AppEngine.
Sorry, I meant the internal application statistics. You can visit your dashboard to view "milliseconds per request", but the data doesn't exist from before this maintenance period.
One interesting aside: our nightly datastore backup (using the remote API) no longer causes 500 errors! Hooray!
It would have been sexier on a semi-log-y scale. That said, as someone who's always been annoyed at the high latency of App Engine's datastore, this is huge if they can deliver this level of latency with low variability.
Good news but I really hope Google figures out how to solve DeadlineExceededError. They are popping up from time to time for my app (http://www.knowcase.com) and I don't think it's datastore related.
It's still too early to tell. This would not be the first time that speed improves after a maintenance and then it slowly gets worse every week until it looks almost like before the maintenance.
Is it possible that the degradation in performance is due to more developers building more apps and driving more traffic to App Engine as time goes on?
The performance degrades too quickly for this. In two or three months we might be on our old performance level, again. Well, I seriously hope that we'll stay fast this time. Only time will tell.
The maintenance work has been completed. The datastore was in a read-only period between 12:02-12:45 for a total of 43 minutes. Some users reported two periods of 500 errors unrelated to datastore writes, but these issues should no longer be occurring.
On Nov 6, 12:01 pm, App Engine Downtime Notify <i...@google.com>
This site, probably NSFW, makes use of the datastore (for the thumbnails) and it's now much faster, it's a pity we can't compare speeds with the old latency.
The sense that the app store has been a neglected, second-tier priority is deep enough now that it will take them a while to regain significant developer trust.
AWS is very close to a de-facto standard now.
Edit: I mean app engine, the hosted web service. Not the app store. Thanks.
App Gallery was just a GAE application show-case center, and most likely was causing confusion to Google Apps customers too.
I am still a developer who trusts GAE (my app was on the appgallery and is also listed on marketplace) and believe that they will continue to compete for developer mind-share, as they proved yet again with this performance update.
Let go of the fear, uncertainty & doubt and hop on to try an app. You will like it too.
Can't repeat this enough: the main reason I develop on appengine is that it removes server admin headaches completely from the equation. Ok, you get other headaches in return, but most of the time it's stuff I can deal with.
I can say for sure that some of our datastore-heavy cron jobs were taking > 200ms, but are around 70ms now.
It's a shame that the stats for > 12hrs ago seem to have been wiped. I bet we'd be seeing a marked improvement on our ms/request stat.