Despite this blog being inactive, Bigrecord itself has had new versions rolled out every month or so to address bugs. Now that I have some time, I’ll be working on this project more regularly.
Cassandra support has always been planned, and finally work has begun! Before getting into the details, I’d like to address some misconceptions that have risen regarding its integration. First of all, Cassandra was never supported (at all) in Bigrecord. There was some preliminary work done on Bigrecord-Driver to include support back when Cassandra was first open-sourced and client access was done through a native Java API (rather than exclusively through Thrift). We originally created Bigrecord-Driver for Ruby client access to HBase (before its implementation of Thrift was stable) by using JRuby to access HBase’s Java API and start up a DRb server that allowed native Ruby (Matz) clients to connect to it and interact with HBase. When Cassandra was first released, we tried this same approach in Bigrecord-Driver first, but found that it was unstable and could not be integrated well enough. So, development of Cassandra in Bigrecord-Driver (and consequently Bigrecord) halted. Since then, Cassandra’s client access has been done exclusively through Thrift, so Bigrecord-Driver isn’t required at all. It was just a matter of creating a connection adapter in Bigrecord that used Ruby Thrift or some other client library.
Which brings us to Bigrecord’s support of Cassandra. As of version 0.1.0, Cassandra can be used as one of the data stores. This is a first implementation of the adapter, and there will be many updates (probably daily), so check the commit logs for the latest. Documentation is still to be updated, terminology is inconsistent (since Bigrecord was rooted in HBase), and there are some specs that fail sporadically, but those will all be addressed in the coming weeks.
To get the latest, run
sudo gem install bigrecord
And edit your bigrecord.yml like so:
Everything else should work the same.