Moving from MySQL to Cassandra can be beneficial for a number of reasons, particularly when it comes to spreading out failure scenarios. Or, if you want to be less diplomatic about it, Rackspace's Dave King sums up his feelings in a Tweet:
mysql dead. hail cassandra— Dave (@tildedave) February 21, 2014
However, there are still challenges to be faced. According to King's recent blog post on transitioning from MySQL to Cassandra, the Rackspace team encountered a number of hiccups in the process. According to King:
During our database migration, we ran into a number of application-level failure scenarios -- some of these we induced ourselves through our test scenarios, while others happened to us in our lower environments (staging, preprod, test) during the slow march to production. Each of these failures was not due to a failure of the database, but the failure of components that we added on top of it.
King goes on to describe each of the application-level failure scenarios, including the steps they took to resolve them. The scenarios faced included things like:
- Cassandra's handling of a failed rpc_address
- Unintended denial-of-service opportunities
- Bigger consequences for partial failures
Among other things. Overall, it's a fair and helpful guide to a major technological transition, and it acknowledges the fact that everything, even when great, inevitably has some kinks to work out. Check out King's full article to get a sense of how the Rackspace team handled these issues, as well as King's general takeaways from the transition to Cassandra.