On Tue, Sep 8, 2009 at 11:21 AM, David Given <[email protected]> wrote:

>
> Nick Johnson (Google) wrote:
> [...]
> > Not true - Transactions can encompass entire entity groups. With the
> > correct entity group configuration, you could perform updates on local
> > areas of the map transactionally.
>
> Is it possible to directly access entities in a group other than the
> root one? I was under the impression not (but I could well be wrong).
>

Yes - child entities act in all respects like any other entity, except that
they have a parent entity (or entities).


>
> And I'm afraid it still wouldn't help --- I'd still need synchronisation
> between different groups when dealing with multiple areas on the map;
> and AppEngine's transactions are optimistic rather than blocking, which
> are no use to me.
>

Presumably transactions across local groups are rarer; there are a number of
proposals for distributed transactions on App Engine. You can also use your
locking strategy, but restrict that to when you need to do a cross-region
transaction, significantly reducing contention.


>
> In addition the overhead to performing a single database access appears
> to be so high that it's *much* faster to read and write the entire
> database in two accesses than it is to read parts of it using multiple
> queries! Although that may change as the database size grows.
>

Indeed - with a single entity you're limited to 1MB, and you're reading a
lot of superfluous data. If you size your regions right, you can read the
whole region with a single query, and write only the changed parts back.

-Nick Johnson


>
> --
> ┌─── dg@cowlark.com ───── http://www.cowlark.com ─────
> │
> │ "They laughed at Newton. They laughed at Einstein. Of course, they
> │ also laughed at Bozo the Clown." --- Carl Sagan
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

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

Reply via email to