What’s under the hood in Cassandra 2.0
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!
- 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.