You are correct Chris. I am a newbie too in this field. I like the Cassandra/NoSQL way and I am trying to see if it can fit my model.
Thanks, Erez On Thu, Mar 25, 2010 at 11:03 AM, Christopher Brind < christopher.br...@googlemail.com> wrote: > Hi, > > I wondered if you were eluding to something more complex. You'd probably > want to create a index using something along the lines that Peter suggested. > :) > > But I'm a Cassandra / Column DB newbie, so my experience ends just about > ... here. :) > > Cheers, > Chris > > > On 25 March 2010 08:59, Erez Efrati <ere...@gmail.com> wrote: > >> Hi Chris, >> >> So, if I get it right, you suggest that I pull all the columns for in a >> single row and do the sorting client side? >> The user-friends-messages was just an example and maybe not the best I >> could come up with cause I agree that there are not too many friends in >> general that send you messages. >> >> What I wanted to keep track of companies and user-visit count. Each >> company can have potentially millions of users. Then for each company I want >> to display in pages from the top visiting user to the least one. >> Would you still upload the whole company row columns and sort it on the >> client? >> How do keep updating the visits? >> >> Thanks, >> Erez >> >> On Thu, Mar 25, 2010 at 12:35 AM, Christopher Brind < >> christopher.br...@googlemail.com> wrote: >> >>> Hi Erez, >>> >>> Don't know how many friends a user in your system is likely to have, but >>> are they likely to have received so many messages from friends that you >>> can't sort it in your client app? >>> >>> See: >>> >>> http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html#sort(java.util.List) >>> >>> Assuming the user has 10,000 friends (I'm sure I don't even know 10,000 >>> people :) with Java's Collections.sort which guarantees performance of O(n >>> log(n)) let's say it takes 1ms to process each item, you're looking at >>> 40,000ms to do a sort plus a little overhead to avoid the O( n2 log(n)) - >>> that's 40 seconds to sort for 10,000 friends... >>> >>> On Facebook I have 363 friends that's 929ms + overhead, i.e. around a >>> second. Apparently the average Facebook user has 130 friends: >>> http://www.facebook.com/press/info.php?statistics >>> >>> So I can't imagine the sort exceeding much more than a second or so >>> except for the most popular users - in practice I would hope sub-second >>> easily. Does that help? Or is there something special happening in your >>> system? >>> >>> Cheers, >>> Chris >>> >>> >>> >>> On 24 March 2010 20:36, Erez Efrati <ere...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I can't figure out how to use model the following using column family >>>> and the way the columns are sorted (by their name). >>>> >>>> Lets say I have a list of users and for each user I wish to display a >>>> list of all the friends he has ordered by the number of messages they sent >>>> him so far (desc from most to least). >>>> >>>> I can't see how this is going to work since the columns sorting is >>>> always by the name of the column and not its value. I thought of having a >>>> row for each user and the columns will be the friends that email him. But >>>> the column name needs to be the number of messages to be sorted and the >>>> value will be the friend's user ID. But then, when a friend is sending a >>>> message to another user how do I increment his count of message he sent so >>>> far to that user? >>>> >>>> How can I model this with Cassandra? Is it possible? >>>> >>>> Thanks in advance, >>>> >>>> Erez Efrati >>>> >>> >>> >> >