Google App Engine: Datastore Performance Growing Pains
googleappengine.blogspot.com
googleappengine.blogspot.com
I'm also impressed that they are not charging anyone until the problem is solved.
Couple other ideas:
Try to minimize read effort as much as possible, so e.g. pre-calculate as much as you can and rather optimize for performance than data cost. Data is cheap, so de-normalise where you need speed. Calc offline, so add a task to calculate something and return immediately to the user.
On the performance issue itself, I actually used AppEngine for a project when it first came out and was astounded at how poorly it performed in general. Any page requiring more than a single "select where id={}" query would regularly throw CPU warnings at you.
I couldn't imagine building a site even as straightforward as HN on top of it. As soon as you had a page needing a dozen queries to construct, you'd run into the wall.
We're thinking of porting over to EC2. If anyone knows of any reliable tool that supports this for production, please feel free to shout. Otherwise, we'll probably be building something ourselves...
If you write your own, would you consider open sourcing it?
Re: open source. We might just brute force it for now. If not, we'll definitely pretty it up at some point and open source it. At the very least we can publish our learnings.
We're in the process of doing an emergency move over to EC2 because of these issues. That being said, I must admit that this is a really decent response on Google's part. Unfortunately the problems go deeper than just these latest problems with datastore.