I'm a huge fan of Nick Johnson's method http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine.
As originally written, it establishes links between two entities of the same class but it is trivial to extend it to linking entities of different classes. What I like about this model is that (a) it is maximally sharded and minimizes resource contention and (b) the links can be established atomically so the data store will maintain consistency. So for example to create a link between user and community, we define a "Role" class (equivalent to Nick's Transfer class) that represents that link. As for storage costs, who cares? On Aug 24, 5:44 pm, Eli Jones <[email protected]> wrote: > Here is Brett Slatkin's IO talk from last year that starts off discussing > ListProperty and why one might want to use it instead of a usual one-to-many > model [though, it also points out that I don't know what I'm talking about > :) since like Jeff mentioned, CPU is used up serializing, deserializing the > List and it is not the same underneath as the usual one-to-many model.. so > it seems my intuition is suspect. ]: > > http://www.youtube.com/watch?v=AgaL6NGpkB8 > > <http://www.youtube.com/watch?v=AgaL6NGpkB8>The audio is fried for the first > few minutes but eventually kicks in.. (just watch captions until then). > > > > On Tue, Aug 24, 2010 at 4:30 PM, skin <[email protected]> wrote: > > Thanks a lot Eli for sharing your thoughts on this. So what you are > > suggesting is that I can do with just List<key> communitiesJoined in > > User class. > > > I need not have a mapping of users enrolled in community in Community > > class. And whenever i need to retrieve the list of users in a > > community, I should do select query with like Select * from Users > > where communityId in List of communities. Ain't this going to impact > > the response time to a greater extent? > > > I think there has to be a trade-off between memory utilization and > > response time depending on the requirement. Is there some research > > done on which will be faster or some sample application which can show > > us which technique will be better. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<google-appengine%2Bunsubscrib > > [email protected]> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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?hl=en.
