Thanks Peter for your reply.

In fact, after doing some experimentation, I'm able to answer most of
my own questions, at least unless a Google engineer corrects my
answers:


* What is an "update" exactly?  Is it a call to "pm.makePersistent
()"?  Is it a call to "tx.commit()"?  Is it a call to "pm.flush()"?
Is it an update of a single field in a single Java object?  Is it an
invocation of "doGet()/doPost()"?

tim> If you're not using transactions, then an update seems to mean a
call to "pm.makePersistent()", (or "pm.makePersistentAll()" on objects
within an entity group.)  If you are using transactions, the answer
seems more complicated and I don't know.

* Suppose you want to do multiple updates within the one entity group
within a single Java function.  At what point is the 100ms cost
incurred?   Which function call blocks for the 100ms?
tim> If you're not using transactions, then it's "pm.makePersistent()"
which blocks.  If you are using transactions, then I *think* there's
significant time elapsed in both "pm.makePersistent()" and "tx.commit
()".

* Is it possible to create 900 child entities in an entity group in a
single Java function call, by structuring this "creation of 900
objects" as a single "update"?
tim> Yes, if I use "pm.makePersistentAll()"   (duh!).   I got my
request running extremely quickly, (as quickly as I'd ever expect) by
using "pm.makePersistentAll()".   I passed in a collection:
"ArrayList<Object>".    I used an ArrayList<Object> in order that I
can persist child objects if different types, and also even the head
object, in a single call.

* If I don't use transactions, does this "1-10 updates per second"
limitation go away?
tim> No.   The critical difference is the use of "pm.makePersistentAll
()".   (However, for the record:  it seems that transactions can
somewhat mitigate the mistake of using "pm.makePersistent()" when you
should be using "pm.makePersistentAll()":  for me, it made things run
twice as quick).

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" 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-java?hl=en.


Reply via email to