My understanding is that all writes within the same entity group are
serialized. Hence a best practice is keep Entity Groups as small as
possible. If there is contention between two simulatanous writes to
the same Entity Group, one fails, and having retry logic here will
help get that second write
Thanks Enrique for your response.
This seems to be what the app engine docs are alluding to, but they
are not specific on the writes when the parent entity is not part of
the transaction, and furthermore they suggest that optimistic
concurrency is used and not locking, which lends credence that if
I think I found half of an answer here:
http://bolour.com/blog/2009/06/the-google-app-engine-data-model/
Quoting:
"GAE uses optimistic concurrency control for transactions, and its
concurrency control algorithm operates at the root level of an entity
group. The optimistic concurrency control t
Ugorji,
I agree with you that the documentation is not 100% clear. In Google
I/O 2008, Under the Hood of AppEngine Datastore, Ryan Barrett
discusses transactions under the hood. Toward the backend of the
video (about 40 minutes in), he talked about how transactions are
implemented within the co
Thanks Enrique for your responses. I've done more research and it
seems that
- every write is serialized (regardless of within tx or not)
- contention will always exist at the Entity Group
- use retries to manage
On Jan 28, 5:28 pm, Enrique Perez wrote:
> Ugorji,
>
> I agree with you that the doc