When I first started using appengine, my initial impression of transactions is "what good is this?" because of the entity group limitation. But I've since found that single-entity transactions are really useful for preventing exactly this issue.
So, if you are worried about conflicts, use a transaction. One thing that helps in javaland is to adapt Python's programming model of a transaction. Implement your transactional behavior as an inner class that you hand off to a method that will retry it as many times as necessary. Jeff On Mon, Apr 4, 2011 at 1:34 AM, Ikai Lan (Google) <ika...@google.com> wrote: > If the updates are that important, just use a transaction since it > effectively does what Didier describes. > Ikai Lan > Developer Programs Engineer, Google App Engine > Blog: http://googleappengine.blogspot.com > Twitter: http://twitter.com/app_engine > Reddit: http://www.reddit.com/r/appengine > > > On Sun, Apr 3, 2011 at 5:10 AM, Peter Backx <peter.ba...@gmail.com> wrote: >> >> I have an application that accesses a user entity. This entity also >> contains a number of user specific settings that the user can update. Some >> of those settings are updated by different servlets in parallel (for >> instance uploading a profile picture to the blobstore) >> >> I'm having some serious issues keeping everything in sync. If I'm not >> careful, I can easily overwrite updates that have been done in another >> thread. >> >> I have the feeling this is a recurring issue for many GAE application, so >> I'm looking for some best practices of how to deal with it. >> >> In the relational world, often a "version" column is added. Before >> updating a row, the version number in the database is compared to the one in >> memory. I suppose I can implement something like that on GAE too, but I was >> wondering whether there are better/other options available in the NoSQL >> world. >> >> >> Regards, >> Peter >> >> -- >> 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 >> google-appengine-java@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine-java+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. > > -- > 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 google-appengine-java@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine-java+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- 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 google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.