What's new in Apache Cassandra 2.2

An overview of new features in Cassandra.

Cassandra 2.2 provides new features; performance, operational, and CQL3 improvements; and other notable changes.

New features

Apache Cassandra has a number of new features.


JSON is a common format for storing documents. Cassandra 2.2 can insert and select JSON data.

User-defined functions (UDFs)

User-defined functions (UDFs) can be defined to apply a function to data stored in Cassandra.

User-defined aggregates (UDAs)

Using user-defined functions, custom aggregation functions can be stored in Cassandra.

Role-based access control (RBAC)

In addition to per-user access control, now roles can be defined for role-based access control.

Native protocol v4

The native protocol for CQL is improved.

Performance improvements

Apache Cassandra has a number of performance improvements.

Fully Off-Heap Row Cache

The row cache functionality is moved fully off-heap to improve memory usage.

Direct ByteBuffer Decompression for Reads

Memory maps the data and decompresses entirely off-heap, for great performance gains.

Compressed commit log

The commit log is compressed to save disk space.

Operations improvements

Apache Cassandra has a number of operation improvements.

Improved Repair Concurrency/Parallelism

Improved repair performance.

Keeping SSTable Levels when Bootstrapping

When replacing or bootstrapping a new node, keeps the source SSTable level to avoid doing excessive compaction after bootstrap.

Marking SSTables as Repaired after Full Repair

Ability to track repaired SSTables is improved.

nodetool assassinate

A last resort tool that forcefully removes a dead node without re-replicating any data.

Startup Checks for Bad OS Warnings using Sigar

Better startup checks.

Examining Node State on Startup to Prevent Bad Upgrades

Addition of state check on startup.

nodetool gettraceprobability

New nodetool option.

CQL3 improvements

Apache Cassandra has a number of CQL3 improvements.

Support IN clause on any partition key column or clustering column

Improves query conditional selection.

Accept Dollar Quoted Strings

Implement pg-style dollar syntax for string constants.

Allow Mixing Token and Partition Key Restrictions

Allows queries to include both token(k) and partition key k in restrictions.

Support Indexing Key/Value Entries on Map Collections

Improves ability to index on nested collections.

CLEAR command in cqlsh

CLEAR command in cqlsh to clear the screen.

Allow count(*) and count(1) to be use as normal aggregation

count() can now be used in aggregation.

Other notable changes

Apache Cassandra has a number of other notable changes.

Removal of CQL2

CQL2 is deprecated and removed. CQL3 should be used to interact with Cassandra.

Removal of cassandra-cli

The cassandra-cli utility is deprecated and remains only for legacy installations. Use CQL3 to interact with Cassandra.

Deprecation of sstable2json and json2sstable

sstable2json and json2sstable are deprecated in Cassandra 2.2 and will be removed in Cassandra 3.0.

Shortened SSTable File Path on Disk

Shortened the SSTable filename to prevent breakage.

Incremental Repair is Now Default

Incremental repair is recommended and now the default choice.

Auth Changes

Splits superuser permission and right to manage users, adds permissions for types and functions, and reintroduces DESCRIBE PERMISSION.