I’m in a fairly unique position. Almost a year ago I developed code to migrate part of our MySQL database to Cassandra. Shortly after 2.0.6 was released, I was on the verge of rolling it to live when my project got shelved, and my team got put on a completely different product. In a month or two I will have the opportunity to dust off my Cassandra code and roll to live.
So, here’s my question. Should I roll out on 2.0 or 2.1? My code obviously works on 2.0 (although there are some 2.1 features I could take advantage of). At the Cassandra Summit, I saw performance graphs comparing 2.0 with 2.1, and the difference is pretty dramatic. I’d really like the increased and more consistent performance. Incremental repair also looks pretty sweet. I’d also like to avoid a migration from 2.0 to 2.1 later on. So, there are lots of things that make me want to go straight to 2.0. But, I’m a little leery of deploying with 2.1 just a couple of months after its initial release. There was a bug in 2.0 that threatened my entire project that wasn’t fixed until 2.0.6. Not excited about repeating that experience. The data I’m moving to Cassandra is very core to our product. It’s a few billion partitions, and the most highly accessed data in the system. It has to be rock solid. I’m hearing that the initial 2.1 release is more stable than any prior x.x.0 release, but how much so? It seems that x.x.0 releases have historically been rather unstable, and my experience with 2.0 seems to confirm that. My gut feeling is that I should release on 2.0, and maybe in six months consider an upgrade to 2.1. How painful is the upgrade path from 2.0 to 2.1? Thanks Robert