cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Brind <>
Subject Re: Model Question
Date Wed, 24 Mar 2010 22:35:19 GMT
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?


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:

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?


On 24 March 2010 20:36, Erez Efrati <> 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

View raw message