Continuing in storage exploration, I've put together a domain service impl using Cassandra. I did this work as a fork of Branden's `refactor_connections` branch. The real points of interest in this is a readme[1] explaining the schema for Cassandra and the domain service impl[2]. This is not a full working example of using Cassandra in that it doesn't properly contribute to the Solr index as Branden did. This branch is just an evaluation of what using Cassandra looks like.
In both column families I've used composite columns which can be interesting to get used to. It's easiest to think of them as compound keys to represent nested data in a flattened form. Using composite columns also gives us interesting ways to use columns names efficiently to look up all connections to a person based on status since Cassandra stores columns sorted. I read the Facebook paper on Cassandra[3] and some online posts[4][5][6] to get more comfortable with Cassandra as well as talked to current users/deployers of it. It was also suggested to read the Amazon Dynamo and Google BigTable papers but I haven't worked through those yet. The learning curve of denormalizing data into Cassandra isn't bad if/once you have the right resources to answer questions. #cassandra on freenode is good and community around Cassandra is active. Cassandra exposes a lot of power which can seem daunting but really helps in solving the storage problem more correctly. I'm interested to hear others thoughts about using Cassandra. 1 https://github.com/thecarlhall/nakamura/blob/refactor_connections/bundles/connections/README.cassandra.md 2 https://github.com/thecarlhall/nakamura/blob/refactor_connections/bundles/connections/src/main/java/org/sakaiproject/nakamura/connections/HectorConnectionStorage.java 3 http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf 4 http://www.slideshare.net/aaronmorton/cassandra-does-what-code-mania-2012 5 http://www.datastax.com/docs/1.1/ddl/index 6 http://www.datastax.com/docs/1.1/ <http://www.datastax.com/docs/1.1/index>
_______________________________________________ oae-dev mailing list [email protected] http://collab.sakaiproject.org/mailman/listinfo/oae-dev
