Here's a talk on scalability in regards to the data-store:
http://www.youtube.com/watch?v=Oh9_t5W6MTE&feature=channel

Here's my opinion (gained from limited experience):

On App Engine you basically have to make every request a small
request.

------------(case 1 - product page)---------------------
For instance, on my site, for a product page, I have several requests:

1 request for the basic product page data (including up to 2 amazon
web service calls - using memcache where appropriate)
5 more requests for the bookseller prices (via AJAX)
1 additional amazon request to pull up "similar products" (via AJAX)
1 request to pull up everyone's tags (via AJAX)
1 more request to pull up your tags (if you're logged in, via AJAX)

So that's 9 requests and none of them try to write data.

-------------(case 2 - someone tags a book)-------------
When a user is logged in and "tags" a book - currently I have that all
broken apart as well:

1 request to write the tag in the data-store
6 more requests to update specific counters (for the tag, the book,
the user, etc)

This is broken into 7 requests to avoid a per-request quota warning.
Anytime you're updating data you have to be concerned with the "per-
request" quota seen in your logs as a warning.

---------------(memcache)-------------------------
On every page, you have to make sure you're using memcache where its
appropriate.  Never do something twice in python, the template engine,
or the data-store that really doesn't need to be done.  For instance,
on my site, when a user is not logged in, and they request a product
page, any subsequent user will get a cached copy of that page for the
next few minutes.  Nothing's really changed in the few minutes that
pass, so why do all the work of getting the page ready again?

------ my disclaimer --------------
I'm sure you can find a lot of other resources on how to make a
scalable app using app-engine.  The stuff I'm telling you here is just
my limited take on it  -- learned by a lot of trial and error and
reading documentation :-)  Here's my site if you want to check it
out:  http://www.bookdope.com .  Of course, my site is protected by
obscurity ( no one knows about it ) :-) so my ideas might suck under
the load you're talking about.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to