What's new in Apache Cassandra 3.x
An overview of new features in Apache Cassandra 3.x.
The latest version of Apache Cassandra™ 3.x is 3.11.14.
The CHANGES.txt describes the changes in detail. You can view all version changes by branch or tag in the drop-down list on the changes page.
New features Cassandra 3.2 and later
-graph option for cassandra-stress |
|
TTL for COPY FROM |
A TTL value can be specified when copying from CSV files. |
bulkloader can use third party authentication |
The bulkloader has an
option |
CREATE TABLE WITH ID |
If a table is accidentally dropped, it can be recreated with its ID and the commitlog replayed to regain data. |
Static columns can be indexed |
In Cassandra 3.4 and later, static columns can be indexed. |
New option for nodetool compact |
In Cassandra 3.4 and later, addition of --user-definedcompact to |
Display timestamp in sub-second precision |
In Cassandra 3.4 and later, timestamp defaults to include sub-second precision. |
nodetool gettimeout and nodetool settimeout |
In Cassandra 3.4 and later, two nodetool commands to print out or set the value of a timeout in milliseconds. |
jvm.options file for GC and some JVM options |
Some JVM options have been moved from the cassandra-env.sh file into the new jvm.options file. |
JBOD improvements |
Improvements to SSTable partitioning by token range have improved JBOD compaction and backup. See Improving JBOD for more details. A new command is available to support the improvements, nodetool relocatesstables. |
Clustering columns can be used in WHERE clause without secondary index |
In Cassandra 3.6 and later, clustering columns without a secondary index can be used in a WHERE clause, provided the ALLOW FILTERING clause is also used. |
Update and delete individual subfields of a user-defined type (UDT) |
In Cassandra 3.6 and later, if a UDT has only non-collection fields, an individual field value can be updated or deleted. |
PER PARTITION LIMIT |
In Cassandra 3.6 and later, a query can be limited to return results from each partition, such as a "Top 3" listing. |
CAS statistics added to nodetool proxyhistograms |
In Cassandra 3.6 and later, CAS read and write latency is displayed for compare-and-set operations. |
--hex-format option added to nodetool getsstables |
In Cassandra 3.6 and later, an option to use a hex-formatted key to get SSTables is added to nodetool getsstables. |
Static columns can now be used with SASI indexes |
In Cassandra 3.6 and later, static columns can be used with SASI indexes. |
Change Data Capture (CDC) logging |
In Cassandra 3.8 and later, change data capture (CDC) logging can be enabled. |
New features released in Cassandra 3.0
Storage engine refactored |
The Storage Engine has been refactored. |
Materialized Views |
Materialized views handle automated server-side denormalization, with consistency between base and view data. |
Operations improvements | |
Addition of MAX_WINDOW_SIZE_SECONDS to DTCS compaction settings |
Allow DTCS compaction governance based on maximum window size rather than SSTable age. |
File-based Hint Storage and Improved Replay |
Hints are now stored in files and replay is improved. |
Default garbage collector is changed to G1 |
Default garbage collector is changed from Concurrent-Mark-Sweep (CMS) to G1. G1 performance is better for nodes with heap size of 4GB or greater. |
Changed syntax for CREATE TABLE compression options |
Made the compression options more consistent for |
Add nodetool command to force blocking batchlog replay |
BatchlogManager can force batchlog replay using nodetool. |
Nodetool over SSL |
Nodetool can connect using SSL like cqlsh. |
New nodetool options for hinted handoffs |
Nodetool options |
nodetool stop |
Nodetool option added to stop compactions. |
Other notable changes | |
Requires Java 8 |
Java 8 is now required. |
nodetool cfstats and nodetool cfhistograms renamed |
Renamed |
Native protocol v1 and v2 are dropped |
Native protocol v1 and v2 are dropped in Cassandra 3.0. |