Ryan, I have an additional little question about the read action and rollback.
Suppose we have a group whose root is R with 2 entities X and Y. Now tx T1 updates X and successfully commits. So CTS(R) becomes TS(T1), but Y doesn't have an entry for TS(T1) (because it didn't get updated by T1). Then tx T2 comes in and queries Y according to the current CTS (R) which is TS(T1). So what is retrieved from Y must be as of its lastest timestamp before TS(T1), right? And generally speaking, to be precise, the read rule I mentioned in an earlier msg should be revised as this: if T has not performed any write to X, it will retrieve data from X as of the original CTS(R) that it remembers from the beginning, or as of the latest timestamp entry before CTS(R) if CTS(R) entry doesn't exist in X. Is it correct? (is this one of the minor implementation details that you mentioned earlier?) And if this is correct, I believe in rolling back T, all write entries that T has performed and been applied to all entities must be deleted, right? Otherwise, the above rule wouldn't work properly. Also, are there any other things that must be done during rollback? Thanks, David. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---