Hi Josh, You might want to look into the 'ranklist' library. It'll allow you to keep a large (much larger than 1000) set of records in ranked order, and efficiently answer queries like 'what is the value of the 235th entry?' and 'where would a score of 500 place me?'.
http://code.google.com/p/google-app-engine-ranklist/ -Nick Johnson On Fri, Oct 2, 2009 at 10:40 PM, Josh <[email protected]> wrote: > > Hi all, > > I've seen a number of interesting discussions on how to do efficient > pagination on appengine, but one thing that I haven't seen addressed, > which I would like, is how to efficiently compute ranking information > for the items that are paginated. > > Let me motivate this discussion by considering a leader board. We > have a model like so: > > class Player(db.Model): > name = db.StringProperty() > score = db.IntegerProperty() > last_updated = db.DateTimeProperty(auto_now=True) > > We may have hundreds of thousands of Players and we want to be able to > rank them by their score. > > How could we used the previously discussed pagination techniques > (http://code.google.com/appengine/articles/paging.html) to efficiently > page through the leader board and not only show the Players in order > by score, but also assign a rank value to each player. > > Many thanks for your thoughts and input. > > Cheers, > Josh > > > > -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
