An Entity Group consists of a root ancestor Entity 
<https://cloud.google.com/appengine/docs/standard/python/datastore/entities#Python_Ancestor_paths>,
 
and all of its descendants. There is a write throughput of one transaction 
per second per Entity Group, where transactions on a given entity group are 
executed serially, one after another. If too many concurrent modifications 
are attempted on the same entity group, Datastore will return an error. 

Your code should properly handle failed transactions with an exponential 
backoff retry strategy 
<https://cloud.google.com/storage/docs/exponential-backoff> in order to 
retry the transaction. You can also initially write to Memcache 
<https://cloud.google.com/appengine/docs/standard/python/memcache/> before 
performing a transaction, as this will make the written results available 
immediately. Your reads would then first attempt a read from Memcache, and 
then fail directly to reading from the Datastore if the results are not 
cached. 

- Alternatively as you suggested, you can manually place the parent 'Foo' 
entity ID in a different custom property of 'FooLog' and 'FooAudit', 
forcing both 'FooLog' and 'FooAudit' to both become their own root entity 
(as they will no longer have a parent). This will in turn remove the entity 
group, and remove the write throughput limit.  Note, this will of course 
remove the strong-consistency 
<https://cloud.google.com/datastore/docs/concepts/structuring_for_strong_consistency>
 
benefits of entity groups. 

  


-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/c2d9bb23-e47a-45b2-9a8e-f64963042599%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to