good thread! i can address this in at least some detail now. more
importantly, we expect to gradually provide more and more information
about these kinds of questions. in particular, expect to hear more at
google i/o in may. (i'm giving an entire talk on this very topic. :P)
http://code.google.com/events/io/
at a high level, all data stored with your App Engine application is
replicated across multiple disks and geographical locations. your
application is also hosted in multiple geographical locations, but
usually only served from a single location at any given time. In the
future we'd like to give developers more control over this.
as for the datastore, and all other current stored data APIs like
memcache, there is a single, global view of data. we go to great
lengths to ensure that these APIs are strongly consistent.
in other words, once you've written data with e.g. a datastore put()
or delete(), it is immediately visible to all requests, for all users,
as soon as that call completes successfully. that includes the same
request that made the call, as well as other requests, regardless of
geographic location. similarly, concurrent writes or transactions will
*never* unexpectedly overwrite or collide with each other, regardless
of where the user is located or where the request is served from.
this is what we mean when we say in the docs that the datastore is
strongly consistent:
http://code.google.com/appengine/docs/python/datastore/overview.html
http://code.google.com/appengine/docs/whatisgoogleappengine.html
we view this as a significant differentiating factor vs. similar
systems, like amazon simpledb, that are eventually consistent.
> I'd also suspect you won't get a definitive answer for how things are
> laid out under-the-covers from Google, because they need to keep their
> implementation options open.
good point! we do expect to keep our implementation options open,
largely by describing the behavior you can expect from the serving
stack and the various APIs, and only guaranteeing that that behavior
won't change.
having said that, we're actually working hard to write articles, give
talks, and otherwise describe in detail how things work under the
covers. if you're interested in the datastore, for example, take a
look at the talk i gave at last year's i/o:
http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore