Drew, 
        The Twissandra project is a twitter clone in cassandra, it may give you 
some insight into how things can be modelled 
https://github.com/thobbs/twissandra

        If you are just starting then consider something like...

        - CF to hold the user, their data and their network links  
        - standard CF to hold a blog entry, key is a timestamp 
        - standard CF to hold blog comments, each comment as a single column 
where the name is a long timestamp 
        - standard CF to hold the blogs for a user, key is the user id and each 
column is the blog key 

Thats not a great schema but it's a simple starting point you can build on and 
refine using things like secondary indexes and doing more/less in the same CF. 

Good luck. 
Aaron

On 30 Mar 2011, at 15:13, Drew Kutcharian wrote:

> I'm pretty new to Cassandra and I would like to get your advice on modeling. 
> The object model of the project that I'm working on will be pretty close to 
> Blogger, Tumblr, etc. (or any other blogging website).
> Where you have Users, that each can have many Blogs and each Blog can have 
> many comments. How would you model this efficiently considering:
> 
> 1) Be able to directly link to a User
> 2) Be able to directly link to a Blog
> 3) Be able to query and get all the Blogs for a User ordered by time created 
> descending (new blogs first)
> 4) Be able to query and get all the Comments for each Blog ordered by time 
> created ascending (old comments first)
> 5) Be able to link different Users to each other, as a network.
> 6) Have a well distributed hash so we don't end up with "hot" nodes, while 
> the rest of the nodes are idle
> 7) It would be nice to show a User how many Blogs they have or how many 
> comments are on a Blog, without iterating thru the whole dataset.
> NEW: 8) Be able to query for the most recently added Blogs. For example, 
> Blogs added today, this week, this month, etc.
> 
> The target Cassandra version is 0.8 to use the Secondary Indexes. The goal is 
> to be very efficient, so no Text keys. We were thinking of using Time Based 
> 64bit ids, using Snowflake.
> 
> Thanks,
> 
> Drew

Reply via email to