« How NPR is Embracing Open Source
» Adventures with Cassandra Distributed Database
Posted on THURSDAY, AUGUST 13TH, 2009 by ASENCHI
Categories: CASSANDRA DATABASES PROGRAMMING SOFTWARE
Recently I've began following the development of the ASF project, Cassandra. It's a great project and one I look forward to seeing grow. They are planning release 0.4 soon which has a bunch of nice changes.
There's been some discussion on the developers list recently about tutorials and documentation. I made mentioned in on one of those threads that I wanted to get a Delicious clone together as I thought it would be a good 'entry level' look at Cassandra schema and data model.
With some very good help from Mark McBride and others on the list I finished a diagram that examines this schema a bit more (again, I really wouldn't have gotten any of this together without Mark's help and initial email encouraging some document tossing).
The diagram is here. It's kind of thrown together, but it gives a good look at how data comes together in Cassandra. I've also included some code (analogous to Evan Weaver's Ruby library) to show how the data is inserted. I've included the code for all of this (including the storage-conf.xml) in a git repo (initally for my tinkering) on Github.
After posting this on twitter incomplete I had a couple of minutes in the morning to finish fleshing it out. Boy am I glad I did that, as it's been Re-tweeted a number of times. I just hope it's accurate. :)
I plan on blogging more here soon. I hope to get some tutorials together using this schema and others and eventually packaging up some test data so people new to the project can toss around some data to get a feel for things.
I hope more people get interested in this database system, it really is one of the best new projects out there especially considering the recent interest in the 'nosql' type of web applications. It also has some very big players pushing code at it (Digg, IBM, Twitter, Facebook (although sparingly these days), and web hosting provider Rackspace).