My App Engine failings
Sigh. I have two ideas that I’m trying to turn into ???????? ????? ????????App Engine apps. Both have to do with FriendFeed, both tend to make several requests to the FriendFeed API per hit - so they are probably relatively unusual for App Engine. Unfortunately, it doesn’t seem likely that they will see the light of day because I keep running into the dreaded DeadlineExceededError that Google throws when it feels your request has had more than its fair share of cycles. I tried to mitigate this with memcached but that caused a MemoryExceeded error before long but also the trick I had to use to incorporate it would have prevented things from working from a time standpoint as well.
Here’s what annoys me about this - and I’m probably irrationally upset about this since I’ve put a reasonable number of hours of effort into this now. I understand about CPU quotas and what not - sure, give me a quota of cycles I can use for my app, but please let any individual request run for longer! That is, eventually in a capped universe of quotas, if the app gets enough traffic it simply turns off until the next accounting period. Or if one can pay for cycles it gets added to a bill. So having larger resource usage per request reduces the number of total requests you can have but if the site is destined to be a low traffic site (or if the high resource page is an updater that runs only infrequently) it sucks to be limited in this way.
What this means to me is that another app running a twitter like service could have orders of magnitude more traffic than my apps, use significantly more resources per unit of time than mine and never run afoul of the DeadlineExceededError. Whereas mine, never meant to be a high traffic site, will never even see the light of day simply because each request takes a bit longer than average. I understand that there’s more flexibility to shuffle around resources when each request is smaller and can would welcome a penalty cpu accounting multiplier for longer requests. But this hard deadline is saddening. For me.
It’s obviously early on in App Engine’s arc but my enthusiasm for it is waning. The limitations imposed by BigTable are big, it cuts out some types of applications but with creativity and shifted thinking many still can work. But now with the limitations imposed by request cpu intensity that’s a whole other limitation that will cut out other types of applications. I think there’s a ton of value in App Engine - I’ve been using it and not AWS because of it’s easy startup time (no configuration!) and freeness. It’s been pretty easy to work with so far except for the fact that it won’t actually run my apps in production. I don’t know… have you been playing around with it? Run into any issues or has it been smooth sailing from the get go?







