email iconemail phone iconcall

What’s under the hood in Cassandra 2.0

By Jonathan Ellis, CTO and Co-founder -  September 3, 2013 | 7 Comments

The headlining features in 2.0 are lightweight transactions, CQL enhancements, and triggers. But 2.0 also features a lot of internal optimizations and improvements!

Performance optimization

Spring cleaning

  • Removed compatibility with pre-1.2.5 sstables and pre-1.2.9 schema. Upgrade through the latest version of 1.2.9 first.
  • SuperColumns are gone internally, replaced by composite cells. The SuperColumn API is retained and translated transparently to maintain backwards compatibility. (Richard Low has a good writeup of why supercolumns are obsolete.)
  • The potentially dangerous countPendingHints JMX call has been replaced by a Hints Created metric, which is performant enough to be monitored regularly besides eliminating the posibility of OOM-ing your node.
  • The on-heap partition cache has been removed, leaving only the off-heap option.
  • Vnodes are on by default, and the old token range bisection code for non-vnode clusters is gone. When not using vnodes, specify a token manually or one will be chosen randomly.
  • Removed emergency memory pressure valve logic. The intent here was to give operators enough breathing room to fix misconfigurations causing heap pressure, but it was never as reliable as we would have liked. And now that the important storage engine metadata has been moved off-heap, memory shortages will be obvious much earlier.

Operational concerns

DataStax has many ways for you to advance in your career and knowledge.

You can take free classes, get certified, or read one of our many white papers.

register for classes

get certified

DBA's Guide to NoSQL


  1. Mike Heffner says:

    The link “Streaming has been rewritten” just links to this article. I assume it’s supposed to link to a JIRA?

  2. Jonathan Ellis says:

    We’re actually still working on that post. Soon!

  3. Fuad Efendi says:

    “For applications still using Thrift” – what should I use instead?..

  4. Fuad Efendi says:

    LOL, and native protocol is on top of Thrift isn’t it? including Java, Python, and etc.

    So I will “still” be using Thrift, although implicitly? As always, as usual? And even CQL client is indeed Python application “still” run on top of Thrift?

    That sentence was really confusing for me…
    “For applications still using Thrift”…

  5. Fuad Efendi says:

    Ok; thanks Jonathan, now I understand why development stopped at Astyanax…

    Moving to



Your email address will not be published. Required fields are marked *

Subscribe for newsletter: