NoSQL Benchmarks NoSQL use cases NoSQL Videos NoSQL Hybrid Solutions NoSQL Presentations Big Data Hadoop MapReduce Pig Hive Flume Oozie Sqoop HDFS ZooKeeper Cascading Cascalog BigTable Cassandra HBase Hypertable Couchbase CouchDB MongoDB OrientDB RavenDB Jackrabbit Terrastore Amazon DynamoDB Redis Riak Project Voldemort Tokyo Cabinet Kyoto Cabinet memcached Amazon SimpleDB Datomic MemcacheDB M/DB GT.M Amazon Dynamo Dynomite Mnesia Yahoo! PNUTS/Sherpa Neo4j InfoGrid Sones GraphDB InfiniteGraph AllegroGraph MarkLogic Clustrix CouchDB Case Studies MongoDB Case Studies NoSQL at Adobe NoSQL at Facebook NoSQL at Twitter



Cassandra: Upgrading from 0.6 to 0.7

The recently released Cassandra 0.7 came with lots of goodies in the box so many users are starting to roll it live. Unfortunately according to this thread the upgrade will require both a cluster shutdown and upgrade of the clients at the same time.

Unfortunately there are changes to the inter-node protocol which which make it impossible to run a mixed cluster.

The TTL feature is one of the things that mean you also have to upgrade the client. The Columns returned and accepted by Cassandra will now expect to have a TTL field.

I am wondering what’s the recommended upgrade process for these cases where a complete cluster shut down and synchronized client upgrade is need?

What I imagine myself doing:

  • set up a test cluster
  • export a fair amount of live data to the test cluster
  • start running tests on it as long as possible
  • once these are completed or results are satisfying, choose the best downtime moment
  • perform the upgrade

Another interesting approach would be to start building up a parallel cluster and piping live data over to it. Once the new cluster would catch up and tests are completed, just switch the client. But this might not be doable due to the costs of maintaining two clusters and the lack of tools for piping data from existing cluster to the new one.

Original title and link: Cassandra: Upgrading from 0.6 to 0.7 (NoSQL databases © myNoSQL)