>From the Python documentation:
    When you use the App Engine datastore, every attempt to create,
update, or delete an entity happens in a transaction.

This means, I think, that GAE will perform/create a transaction for
you, in the API, if the put() code is not already inside a
transaction.
So you don't need to code a transaction to create a child object, GAE
will do that for you.

# no need for a transaction here.
Grok(parent=myFoo).put()  # python syntax

Code the transaction yourself if you need to modify multiple objects
in the entity group.

2011/1/13 Stephen Johnson <[email protected]>:
> From the documentation:
> While an app is applying changes to entities in an entity group, all other
> attempts to update any entity in the group fail at commit time. Because of
> this design, using entity groups limits the number of concurrent writes you
> can do on any entity in that group. When a transaction starts, App Engine
> uses optimistic concurrency control by checking the last update time for the
> entity group. Upon commiting a transaction for an entity group, App Engine
> again checks the last update time for the entity group. If it has changed
> since our initial check, we throw an exception. For an explanation of entity
> groups, see Entity Groups.
>
>
> On Thu, Jan 13, 2011 at 10:48 AM, Mark <[email protected]> wrote:
>>
>> Hi,
>>
>> Let's say we have an entity group hierarchy like this:
>>
>>    Foo
>>       |
>>       --- Grok
>>
>> Foo is the entity parent. Any time I add a Grok instance to the
>> datastore, does the parent Foo instance have to be locked? Example:
>>
>>    Transaction tx = pm.currentTransaction();
>>    try {
>>        tx.begin();
>>
>>        Grok grok = new Grok();
>>        pm.makePersistent(grok);
>>
>>        tx.commit(); // will a parent Foo get locked now?
>>    }
>>    finally {
>>        if (tx.isActive()) {
>>            tx.rollback();
>>    }
>>
>> I guess the same question then - if I'm performing a transaction on
>> the parent Foo, will all its Grok instances be locked?
>>
>> Thanks

-- 
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