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 in CQL3 |
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. |