Cassandra FAQ: What Version of Cassandra Should I Run in Production?

A frequent question on cassandra-user@ and #cassandra on freenode IRC is summarized as follows:

“X.Y.Z is the current ‘stable’ version, should I deploy it to production or should I deploy the ‘oldstable’ version?”

My stock answer to this question is to say that Cassandra history shows :

  • The lifetime of a major version (X.Y) is approximately one year.
  • The initial release (X.Y.0) contains serious bugs. For example, Hinted Handoff was broken in both 1.0.0 [1] and 1.1.0 [2] releases.
  • History shows that most of these bugs are discovered and resolved by version X.Y.6.
  • The sixth minor version (X.Y.6) is typically released about 5 months after the .0 release, and is usually followed by at least 6 releases over the next 7 months.
  • Within a few months of a X.Y.6, a new stable release results in “oldstable” receiving only bugfix changes.

Therefore:

“You should not deploy a Cassandra version X.Y.Z to production where Z <= 5.”

Version Release Date Time After X.Y.0 release
1.0.0 10/18/11
1.0.6 12/14/11 2 months (“1.0 was rough”)
1.0.12 10/03/12 12 months
1.1.0 04/24/12
1.1.6 10/15/12 5 months
1.1.12 05/27/13 13 months
1.2.0 01/02/13
1.2.6 06/26/13 5 months
1.2.10 09/23/13 8 months (1.2.x line not done)

[1] http://issues.apache.org/jira/browse/CASSANDRA-3466 (fixed in 1.0.3)

[2] http://issues.apache.org/jira/browse/CASSANDRA-4772 (fixed in 1.1.6)