Social network feed/wall question

2009-11-22 Thread Kristian Lunde
I am currently building a social network application where one of the  
important features is a feed / wall (Something similar to the Facebook  
wall). We will have several feeds, one for each profile and one for  
each group and so on.  I have looked into using Cassandra for storing  
this, but I am not sure I am on the right track regarding my "schema".


My thoughs was that the schema would be similar to this

Feed [SuperColumn]
- Row [user id as identifier]
[Columns]
- type
- timestamp
- message
- url

Each user would have his own feed super column and store all feed  
items related to him in this super column. I am not sure this is the  
best idea, since it creates an insane amount of writes whenever  
someone writes to their wall (this will have to write the feed of all  
his friends). Also I read in this thread http://www.mail-archive.com/cassandra-user@incubator.apache.org/msg00360.html 
 that super columns are not suited for > 60k rows in a super column.


What would be the optimal way of storing a set of feeds in cassandra?

Thanks
Kristian

Re: Social network feed/wall question

2009-11-22 Thread Ian Holsman
One of the problems you may face is that the common operation is 'get  
last X'.
You might want to look at redis as an alternative as it supports this  
operation natively.
I'm sure the Cassandra experts can help with your schema to optimize  
it as well



---
Sent from my phone
Ian Holsman - 703 879-3128

On 23/11/2009, at 9:55 AM, Kristian Lunde  wrote:

I am currently building a social network application where one of  
the important features is a feed / wall (Something similar to the  
Facebook wall). We will have several feeds, one for each profile and  
one for each group and so on.  I have looked into using Cassandra  
for storing this, but I am not sure I am on the right track  
regarding my "schema".


My thoughs was that the schema would be similar to this

Feed [SuperColumn]
- Row [user id as identifier]
[Columns]
- type
- timestamp
- message
- url

Each user would have his own feed super column and store all feed  
items related to him in this super column. I am not sure this is the  
best idea, since it creates an insane amount of writes whenever  
someone writes to their wall (this will have to write the feed of  
all his friends). Also I read in this thread http://www.mail-archive.com/cassandra-user@incubator.apache.org/msg00360.html 
 that super columns are not suited for > 60k rows in a super column.


What would be the optimal way of storing a set of feeds in cassandra?

Thanks
Kristian