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.

Reply via email to