This is a good segue into something I've been contemplating: Does anyone actually use the Relation Index Entity pattern? How does it perform?
I don't mean how do queries perform - obviously those would be fast. But how expensive in both latency and price is it to write an entity with effectively 5,000 indexed fields? You're not just "tacking an entry on to the end" of the recipient list - you put() an entity whole and so GAE must update (or at least check) every single value against the index. You couldn't use the RIE pattern for Twitter. People follow and unfollow other people all the time. What are you going to do when someone follows you, walk through every one of your existing tweets and rewrite the index? I think not. You couldn't use the RIE pattern for the Original Poster's purpose because there is relationship data involved. You need a full-blown relationship entity (ie UserSkill). The RIE pattern seems pretty useless in the real world because it assumes a large number of fairly static recipients. Maybe not useless, but looking at the real world, I have a hard time finding a good purpose for it. Anyone got a suggestion? My hypothesis: Slatkins' talk is interesting but actually of little practical value. Jeff On Tue, Mar 9, 2010 at 8:21 PM, John Patterson <jdpatter...@gmail.com> wrote: > > On 10 Mar 2010, at 10:53, Max wrote: > >> Rusty Wright suggested a list of user keys to be stored in skill >> entity. But that means only 5000 users can have the same skill. > > If you use the "Relation Index Entity" pattern as described in Bret Slatkins > talk you can store 5000 users per index entity and an unlimited number of > index entities. This will actually give you much better query performance > too because you will not need to load the list of 5000 Keys every time you > read your main entity. > > The new release of Twig has direct support for RIE's and can actually let > you query for multiple skills *in parallel* then merge the results and > return the parents : > > http://code.google.com/p/twig-persist/wiki/Using#Relation_Index_Entities > > > -- > 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-j...@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-j...@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.