On Jul 26, 9:40 pm, Jose Montes de Oca <jfmontesde...@google.com>
wrote:
> Hi Pol,
>
> What this meas is that even if a transaction throws an exception this does
> not means the transaction failed, thats why you need to make your datastore
> transaction idempotent. So if you retry a transaction because it throws an
> exception, your transaction needs to "check" if the last
> transaction committed successfully or not.

I don't understand how GAE could not report if the transaction
succeeded or not. Clearly this stuff is deterministic.

You're saying I have to maintain my own journal of transactions to
check against. But then that journal is itself would have to be
updated through transactions, so it needs to be journaled as well and
so on... it's completely unsolvable. How would implement a bank on
such a system? How could you ever 100% guarantee a user's transactions
are all in there or that the account's balance is correct?

Let's even look at a simple example: if you were to implement a simple
counter, how do you make that idempotent?

txn()
  counter = Counter.get(...)
  counter.value += 1
  counter.put()

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

Reply via email to