incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erez Efrati <ere...@gmail.com>
Subject Re: Model Question
Date Thu, 25 Mar 2010 09:09:07 GMT
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.brind@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 <erezef@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.brind@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 <erezef@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
>>>>
>>>
>>>
>>
>

Mime
View raw message