It isn't the other way 'round, no. This is pretty standard fare for all
distributed systems, including RDBMSes.

Let's say you get a timeout error (on GAE or Oracle). Did the txn commit or
not? It's not clear; there was probably a network disconnect and you can't
assume it was before or after the commit. You don't know.

The HRD was (last time I checked) documented to have some edge conditions
that would throw ConcurrentModificationException even when the txn commits.
I didn't find a similar statement on a casual search now; it would be nice
to have some clarification from Google on this, because it would make life
easier if CME was idempotently retry-able. Timeouts and whatnot can just be
raised to the user as long as they aren't frequent.

On the other hand, successful commits are successful commits. You don't
need to wonder about that.

If you work on distirbuted applications (and practically all apps are these
days), this should be mandatory reading:
http://en.wikipedia.org/wiki/Two_Generals%27_Problem

Jeff

On Mon, May 18, 2015 at 10:38 PM, Dan Dubois <[email protected]> wrote:

> Hi Jeff,
>
> I just wanted some clarification on the following statement:
>
> "HOWEVER, you have to take idempotence rather seriously. The "edge cases"
> of the datastore produce errors/exceptions. Errors can happen even if the
> underlying transaction committed successfully."
>
> Are you saying that datastore transaction API might return an error to us
> but actually commit anyway? I just hope that it's not also the other way
> around where the transaction API returns that everything is OK but actually
> doesn't commit!
>
> Dan
>
> --
> 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 http://groups.google.com/group/google-appengine.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-appengine/9b40bc26-1078-4e7f-bc73-7d292f9ec46c%40googlegroups.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/CADK-0uj9oCdZdpu-kfxuDpgnJR%2BTMOso38LX5Ai-VUhn3QN87Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to