Over a million developers have joined DZone.

From MySQL to Cassandra: How to Deal with Application-Level Failure Scenarios

DZone's Guide to

From MySQL to Cassandra: How to Deal with Application-Level Failure Scenarios

· Java Zone ·
Free Resource

Take 60 minutes to understand the Power of the Actor Model with "Designing Reactive Systems: The Role Of Actors In Distributed Architecture". Brought to you in partnership with Lightbend.

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:

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.

Learn how the Actor model provides a simple but powerful way to design and implement reactive applications that can distribute work across clusters of cores and servers. Brought to you in partnership with Lightbend.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}