There are many things to hate about AppEngine, but this is not one of them.
You're being aggressively rate-limited because your account does not have billing set up. If you only have the free quota to work with, they place continuous limits on resources to keep you from exhausting your daily supply early.
Even with billing, GAE expects gradual ramp-up of traffic, as would happen in the real world. Your app will fail to scale if you hit it with an artificial blast of benchmarked requests because the back-end wouldn't know to fire up more instances.
In our extra tests we get 15k real user hits (get an image on a popular web-site front page, 3req/sec average), and then added 2 servers with load generators to get to 50-80 requests per second. We haven't noticed when it auto-scales (that was "proper" sharded counter application). Probably it never scales on non-billed account (but we were far from our limits).
They also have an algo that protects against DDOS, and allows for resources to be allocated as organic (even viral) activity increases... see their article about load testing to see that you can get quite a lot of load by staggering it.
I am not denying the fact that it scales. I am saying that on the per-box level it is slow. And if you get slashdotted, you get that "synthetic" load peak, which might not be handled by scaling.
I have been slashdotted, and as best I could tell it handled it fine. The individual nodes are slow, especially since the box is probably doing lots of other things. If the task can be parallelized, this is a non issue. If it can't (which may be insanely rare) then it won't work. Most of my time on AppEngine has been trying to make smaller and faster requests that handle less and less data.
Comments
There are many things to hate about AppEngine, but this is not one of them.
You're being aggressively rate-limited because your account does not have billing set up. If you only have the free quota to work with, they place continuous limits on resources to keep you from exhausting your daily supply early.
Even with billing, GAE expects gradual ramp-up of traffic, as would happen in the real world. Your app will fail to scale if you hit it with an artificial blast of benchmarked requests because the back-end wouldn't know to fire up more instances.
In our extra tests we get 15k real user hits (get an image on a popular web-site front page, 3req/sec average), and then added 2 servers with load generators to get to 50-80 requests per second. We haven't noticed when it auto-scales (that was "proper" sharded counter application). Probably it never scales on non-billed account (but we were far from our limits).
They also have an algo that protects against DDOS, and allows for resources to be allocated as organic (even viral) activity increases... see their article about load testing to see that you can get quite a lot of load by staggering it.
I am not denying the fact that it scales. I am saying that on the per-box level it is slow. And if you get slashdotted, you get that "synthetic" load peak, which might not be handled by scaling.
I have been slashdotted, and as best I could tell it handled it fine. The individual nodes are slow, especially since the box is probably doing lots of other things. If the task can be parallelized, this is a non issue. If it can't (which may be insanely rare) then it won't work. Most of my time on AppEngine has been trying to make smaller and faster requests that handle less and less data.