Cassandra changes

DataStax Enterprise 4.8 includes production-certified Cassandra changes.

Familiarize yourself with the changes and features in the new Cassandra version. A complete list of changes is available in CHANGES.txt. The changes in this document identify only the DataStax Enterprise production-certified changes that are in addition to the specified Cassandra version. Patch releases without Cassandra changes include only the changes for the specified release, and do not include additional production-certified changes.

DataStax Enterprise includes additional production-certified Cassandra changes for:

DataStax Enterprise 4.8.16 

DataStax Enterprise 4.8.16 includes these production-certified Cassandra changes that are in addition to the 2.1.19 version:
  • Fix for the TTL expiration timestamps susceptible to the year 2038 problem. (DSP-15412)

    When using a long TTL, DataStax strongly recommends upgrading to DSE 4.8.16 or later and taking required action.

  • Improve live-node-replacement. (DSP-15412)
  • Check checksum before decompressing data. (CASSANDRA-14284)
  • CVE-2017-5929 Security vulnerability in Logback warning in NEWS.txt. (CASSANDRA-14183
  • Protect against overflow of local expiration time. (CASSANDRA-14092
  • More PEP8 compliance for cqlsh. (CASSANDRA-14021)
  • RPM package spec: fix permissions for installed jars and config files. (CASSANDRA-14181)
  • Add storage port options to sstableloader. (CASSANDRA-13844)
  • Remove stress-test target in CircleCI as it's not existing. (CASSANDRA-13775)

DataStax Enterprise 4.8.14 

DataStax Enterprise 4.8.14 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.19 version:
  • Revert DSP-12292 to avoid problems with recreating default distributed keyspaces (DSP-13987)
  • Avoid holding unnecessary range tombstones in memory during SSTable writing (DSP-13838)
  • Clone HeartBeatState when building gossip messages. Make its generation/version volatile (CASSANDRA-13700)
  • Fix 2ndary indexes on primary key columns to don't create expiring entries (CASSANDRA-13412)
  • Set javac encoding to utf-8 (CASSANDRA-13466)
  • Fix 2ndary index queries on partition keys for tables with static columns (CASSANDRA-13147)
  • Fix ParseError unhashable type list in cqlsh copy from (CASSANDRA-13364)

DataStax Enterprise 4.8.13 

DataStax Enterprise 4.8.13 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.17 version:
  • Log stacktrace of uncaught exceptions (CASSANDRA-13108)
  • Remove unused repositories (CASSANDRA-13278)

DataStax Enterprise 4.8.12 

DataStax Enterprise 4.8.12 includes these production-certified Cassandra changes that are in addition to the Cassandra 2.1.16 version:
  • Forward writes to replacement node when replace_address != broadcast_address (CASSANDRA-8523)
  • Add TimeWindowCompactionStrategy (CASSANDRA-9666)
  • Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  • Allow the prepared statement cache size to be changed. (DSP-11420)
  • cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664)
  • Avoid assertion error when IndexSummary > 2G (CASSANDRA-12014)
  • Don't write shadowed range tombstone (CASSANDRA-12030)
  • Close window between create table keyspace validation and read of serialized keyspace (DSP-12292)
  • Fix potential NPE for compactionstats (CASSANDRA-12462)
  • Fix merkle tree depth calculation (CASSANDRA-12580)
  • Fix authentication problem when invoking cqlsh copy from a SOURCE command (CASSANDRA-12642)
  • Don't skip sstables based on maxLocalDeletionTime (CASSANDRA-12765)
  • Fix RecoveryManagerTruncateTest (CASSANDRA-12802)
  • Fix race causing infinite loop if Thrift server is stopped before it starts listening (CASSANDRA-12856)
  • cqlsh copy-from: sort user type fields in csv (CASSANDRA-12959)
  • Fix missed signal when commit log segments are recycled (CASSANDRA-13037)
  • Fix DynamicEndpointSnitch noop in multi-datacenter situations (CASSANDRA-13074)

DataStax Enterprise 4.8.11 

DataStax Enterprise 4.8.11 includes these production-certified Cassandra changes that are in addition to the Cassandra 2.1.16 version:
  • Forward writes to replacement node when replace_address != broadcast_address (CASSANDRA-8523)
  • Log endpoint and port associated with streaming operation (CASSANDRA-8777)
  • Decommissioned nodes will not rejoin the cluster (CASSANDRA-8801)
  • Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  • cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664)
  • Only set broadcast_rpc_address on Ec2MultiRegionSnitch if it's not set (CASSANDRA-11356)
  • Don't write shadowed range tombstone (CASSANDRA-12030)
  • Fix authentication problem when invoking cqlsh copy from a SOURCE command (CASSANDRA-12642)

DataStax Enterprise 4.8.10 

DataStax Enterprise 4.8.10 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.15 version:
  • Log endpoint and port associated with streaming operation (CASSANDRA-8777)
  • Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  • Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)
  • Only set broadcast_rpc_address on Ec2MultiRegionSnitch if it is not set (CASSANDRA-11356)
  • cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664)
  • Disable passing control to post-flush after flush failure to prevent data loss (CASSANDRA-11828)
  • Cannot use cql since upgrading python to 2.7.11+ (CASSANDRA-11850)
  • Include column family parameter when -st and -et are provided (CASSANDRA-11866)
  • Filtering on clustering columns when 2i is used (CASSANDRA-11907)
  • Don't write shadowed range tombstone (CASSANDRA-12030)
  • Allow STCS-in-L0 compactions to reduce scope with LCS (CASSANDRA-12040)
  • Fix queries with empty ByteBuffer values in clustering column restrictions (CASSANDRA-12127)

DataStax Enterprise 4.8.9 

DataStax Enterprise 4.8.9 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.15 version:
  • Account for partition deletions in tombstone histogram. (CASSANDRA-12112)
  • Avoid stalling Paxos when the Paxos state expires. (CASSANDRA-12043)
  • Remove finished incoming streaming connections from MessagingService. (CASSANDRA-11854)
  • Don't try to get SSTables for non-repairing column families. (CASSANDRA-12077)
  • Prevent select statements with clustering key greater than 64k. (CASSANDRA-11882)
  • Avoid marking too many SSTables as repaired .(CASSANDRA-11696)
  • Fix clock skew corrupting other nodes with Paxos. (CASSANDRA-11991)
  • Remove distinction between non-existing static columns and existing but null in LWTs. (CASSANDRA-9842)
  • Support mlockall on IBM POWER arch. (CASSANDRA-11576)
  • Cache local ranges when calculating repair neighbors. (CASSANDRA-11933)
  • Allow LWT operation on static column with only partition keys. (CASSANDRA-10532)
  • Create interval tree over canonical SSTables to avoid missing SSTables during streaming. (CASSANDRA-11886)
  • cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections. (CASSANDRA-11749)
  • Updated cqlsh Python driver to fix DESCRIBE problem for legacy tables. (CASSANDRA-11055)
  • cqlsh: apply current keyspace to source command. (CASSANDRA-11152)

DataStax Enterprise 4.8.8 

DataStax Enterprise 4.8.8 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.14 version:
  • Backport CASSANDRA-11578 (CASSANDRA-11750)
  • Clear out parent repair session if repair coordinator dies (CASSANDRA-11824)
  • Set default streaming_socket_timeout_in_ms to 24 hours (CASSANDRA-11840)
  • Do not consider local node a valid source during replace (CASSANDRA-11848)
  • Avoid holding SSTableReaders for duration of incremental repair (CASSANDRA-11739)
  • Add message dropped tasks to nodetool netstats (CASSANDRA-11855)
  • Don't compute expensive MaxPurgeableTimestamp until we've verified there's an expired tombstone (CASSANDRA-11834)
  • Fix paging on DISTINCT queries repeats result when first row in partition change (CASSANDRA-11679)
  • Add option to disable use of severity in DynamicEndpointSnitch (CASSANDRA-11737)
  • cqlsh COPY FROM fails for null values with non-prepared statements (CASSANDRA-11631)
  • Make cython optional in pylib/setup.py (CASSANDRA-11630)
  • Change order of directory searching for cassandra.in.sh to favor local one (CASSANDRA-11628)
  • cqlsh COPY FROM fails with []{} chars in UDT/tuple fields/values (CASSANDRA-11633)
  • clqsh: COPY FROM throws TypeError with Cython extensions enabled (CASSANDRA-11574)
  • cqlsh: COPY FROM ignores NULL values in conversion (CASSANDRA-11549)
  • Validate levels when building LeveledScanner to avoid overlaps with orphaned SSTables (CASSANDRA-9935)
  • Start L0 STCS-compactions even if there is a L0 -> L1 compaction going (CASSANDRA-10979)

DataStax Enterprise 4.8.7 

DataStax Enterprise 4.8.7 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.13 version:
  • cqlsh: COPY FROM ignores NULL values in conversion (CASSANDRA-11549)
  • (cqlsh) Fix potential COPY deadlock when parent process is terminating child processes (CASSANDRA-11505)
  • Replace SSTables on DataTracker before marking them as non-compacting during anti-compaction (CASSANDRA-11548)
  • Checking if an unlogged batch is local is inefficient (CASSANDRA-11529)
  • Fix paging for COMPACT tables without clustering columns (CASSANDRA-11467)
  • Fix out-of-space error treatment in memtable flushing (CASSANDRA-11448)
  • Backport CASSANDRA-10859 (CASSANDRA-11415)
  • COPY FROM fails when importing blob (CASSANDRA-11375)
  • Add a -j parameter to scrub/cleanup/upgradesstables to state how many threads to use (CASSANDRA-11179)

DataStax Enterprise 4.8.6 

DataStax Enterprise 4.8.6 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.13 version:
  • Backport CASSANDRA-10679 (CASSANDRA-9598)
  • Don't do defragmentation if reading from repaired SSTables (CASSANDRA-10342)
  • Fix streaming_socket_timeout_in_ms not enforced (CASSANDRA-11286)
  • Avoid dropping message too quickly due to missing unit conversion (CASSANDRA-11302)
  • COPY FROM on large datasets: fix progress report and debug performance (CASSANDRA-11053)
  • InvalidateKeys should have a weak ref to key cache (CASSANDRA-11176)
  • Don't remove FailureDetector history on removeEndpoint (CASSANDRA-10371)
  • Only notify if repair status changed (CASSANDRA-11172)
  • Add partition key to TombstoneOverwhelmingException error message (CASSANDRA-10888)
  • Use logback setting for 'cassandra -v' command (CASSANDRA-10767)
  • Fix sstableloader to unthrottle streaming by default (CASSANDRA-9714)
  • Fix incorrect warning in 'nodetool status' (CASSANDRA-10176)

DataStax Enterprise 4.8.5 

DataStax Enterprise 4.8.5 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.13 version:
  • Properly release SSTable ref when doing offline scrub (CASSANDRA-10697)
  • Improve nodetool status performance for large cluster (CASSANDRA-7238)
  • Make it clear what DTCS timestamp_resolution is used for (CASSANDRA-11041)
  • Gossiper#isEnabled is not thread safe (CASSANDRA-11116)
  • Avoid major compaction mixing repaired and unrepaired SSTables in DTCS (CASSANDRA-11113)
  • test_bulk_round_trip_blogposts is failing occasionally (CASSANDRA-10938)
  • LCS doesn't do L0 STC on new tables while an L0->L1 compaction is in progress (CASSANDRA-10979)
  • Fix isJoined return true only after becoming cluster member (CASANDRA-11007)
  • Fix bad gossip generation seen in long-running clusters (CASSANDRA-10969)
  • Avoid NPE when incremental repair fails (CASSANDRA-10909)
  • Unmark SSTables compacting once they are done in cleanup/scrub/upgradesstables (CASSANDRA-10829)
  • Revert CASSANDRA-10012 and add more logging (CASSANDRA-10961)
  • Allow simultaneous bootstrapping with strict consistency when no vnodes are used (CASSANDRA-11005)
  • Log a message when major compaction does not result in a single file (CASSANDRA-10847)
  • (cqlsh) fix cqlsh_copy_tests when vnodes are disabled (CASSANDRA-10997)
  • (cqlsh) fix formatting bytearray values (CASSANDRA-10839)
  • (cqlsh) Add request timeout option to cqlsh (CASSANDRA-10686)
  • Avoid AssertionError while submitting hint with LWT (CASSANDRA-10477)
  • If CompactionMetadata is not in stats file, use index summary instead (CASSANDRA-10676)
  • Retry sending gossip syn multiple times during shadow round (CASSANDRA-8072)
  • Fix pending range calculation during moves (CASSANDRA-10887)

DataStax Enterprise 4.8.4 

DataStax Enterprise 4.8.4 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.12 version:
  • Sane default (200Mbps) for inter-DC streaming throughput (CASSANDRA-8708)
  • Match cassandra-loader options in COPY FROM (CASSANDRA-9303)
  • Fix binding to any address in CqlBulkRecordWriter (CASSANDRA-9309)
  • Fix the way we replace SSTables after anticompaction (CASSANDRA-10831)
  • cqlsh fails to decode UTF-8 characters for text typed columns (CASSANDRA-10875)
  • Log error when stream session fails (CASSANDRA-9294)
  • Fix bugs in commit log archiving startup behavior (CASSANDRA-10593)
  • (cqlsh) further optimise COPY FROM (CASSANDRA-9302)
  • Allow CREATE TABLE WITH ID (CASSANDRA-9179)
  • Make Stress compiles within eclipse (CASSANDRA-10807)
  • Cassandra Daemon should print JVM arguments (CASSANDRA-10764)
  • Allow cancellation of index summary redistribution (CASSANDRA-8805)
  • sstableloader will fail if there are collections in the schema tables (CASSANDRA-10700)
  • Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474)
  • Fix Stress profile parsing on Windows (CASSANDRA-10808)

DataStax Enterprise 4.8.3 

DataStax Enterprise 4.8.3 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.11 version:
  • Fix incremental repair hang when replica is down (CASSANDRA-10288)
  • Avoid writing range tombstones after END_OF_ROW marker (CASSANDRA-10791)
  • Optimize the way we check if a token is repaired in anticompaction (CASSANDRA-10768)
  • Add proper error handling to stream receiver (CASSANDRA-10774)
  • Warn or fail when changing cluster topology live (CASSANDRA-10243)
  • Status command in debian/ubuntu init script doesn't work (CASSANDRA-10213)
  • Some DROP ... IF EXISTS incorrectly result in exceptions on non-existing KS (CASSANDRA-10658)
  • DeletionTime.compareTo wrong in rare cases (CASSANDRA-10749)
  • Force encoding when computing statement ids (CASSANDRA-10755)
  • Properly reject counters as map keys (CASSANDRA-10760)
  • Fix the sstable-needs-cleanup check (CASSANDRA-10740)
  • (cqlsh) Print column names before COPY operation (CASSANDRA-8935)
  • Add Native-Transport-Requests back to tpstats (CASSANDRA-10044)
  • Make paging logic consistent between searcher impls (CASSANDRA-10683)
  • Fix CompressedInputStream for proper cleanup (CASSANDRA-10012)
  • (cqlsh) Support counters in COPY commands (CASSANDRA-9043)
  • Try next replica if not possible to connect to primary replica on ColumnFamilyRecordReader (CASSANDRA-2388)
  • Limit window size in DTCS (CASSANDRA-10280)
  • sstableloader does not use MAX_HEAP_SIZE env parameter (CASSANDRA-10188)
  • (cqlsh) Improve COPY TO performance and error handling (CASSANDRA-9304)
  • Don't remove level info when running upgradesstables (CASSANDRA-10692)
  • Create compression chunk for sending file only (CASSANDRA-10680)
  • Make buffered read size configurable (CASSANDRA-10249)
  • Forbid compact clustering column type changes in ALTER TABLE (CASSANDRA-8879)
  • Reject incremental repair with subrange repair (CASSANDRA-10422)
  • Add a nodetool command to refresh size_estimates (CASSANDRA-9579)
  • Shutdown compaction in drain to prevent leak (CASSANDRA-10079)
  • Invalidate cache after stream receive task is completed (CASSANDRA-10341)
  • Reject counter writes in CQLSSTableWriter (CASSANDRA-10258)
  • Remove superfluous COUNTER_MUTATION stage mapping (CASSANDRA-10605)
  • Improve json2sstable error reporting on nonexistent columns (CASSANDRA-10401)
  • (cqlsh) fix COPY using wrong variable name for time_format (CASSANDRA-10633)
  • Do not run SizeEstimatesRecorder if a node is not a member of the ring (CASSANDRA-9912)
  • CompressionInfo will be fsynced on close (CASSANDRA-10534)
  • Reduce contention in CompositeType instance interning (CASSANDRA-10433)

DataStax Enterprise 4.8.2 

DataStax Enterprise 4.8.2 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.11 version:
  • Leak detected, after nodetool drain. (CASSANDRA-10079)
  • Improve handling of dead nodes in gossip (CASSANDRA-10298)
  • Fix logback-tools.xml incorrectly configured for outputing to System.err (CASSANDRA-9937)
  • Fix streaming to catch exception so retry not fail (CASSANDRA-10557)
  • Add validation method to PerRowSecondaryIndex (CASSANDRA-10092)
  • Support encrypted and plain traffic on the same port (CASSANDRA-10559)
  • Do STCS in DTCS windows (CASSANDRA-10276)
  • Don't try to get ancestors from half-renamed SSTables (CASSANDRA-10501)
  • Avoid repetition of JVM_OPTS in debian package (CASSANDRA-10251)
  • Fix potential NPE from handling result of SIM.highestSelectivityIndex (CASSANDRA-10550)
  • Fix sorting for queries with an IN condition on partition key columns (CASSANDRA-10363)

DataStax Enterprise 4.8.1  

DataStax Enterprise 4.8.1 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.11 version:
  • Fix paging issues with partitions containing only static columns data (CASSANDRA-10381)
  • Fix conditions on static columns (CASSANDRA-10264)
  • AssertionError: attempted to delete non-existing file CommitLog (CASSANDRA-10377)
  • Merge range tombstones during compaction (CASSANDRA-7953)
  • (cqlsh) Distinguish negative and positive infinity in output (CASSANDRA-10523)
  • (cqlsh) allow custom time_format for COPY TO (CASSANDRA-8970)
  • Don't allow startup if the node's rack has changed (CASSANDRA-10242)
  • (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645)
  • Fix mmap file segment seeking to EOF (CASSANDRA-10478)
  • Allow LOCAL_JMX to be easily overridden (CASSANDRA-10275)
  • Mark nodes as dead even if they've already left (CASSANDRA-10205)
  • Update internal python driver used by cqlsh (CASSANDRA-10161, CASSANDRA-10507)
  • Bulk Loader API could not tolerate even node failure (CASSANDRA-10347)
  • Avoid misleading pushed notifications when multiple nodes share an rpc_address (CASSANDRA-10052)
  • Fix dropping undroppable when message queue is full (CASSANDRA-10113)
  • Fix potential ClassCastException during paging (CASSANDRA-10352)
  • Prevent ALTER TYPE from creating circular references (CASSANDRA-10339)
  • Fix cache handling of 2i and base tables (CASSANDRA-10155, 10359)
  • Fix NPE in nodetool compactionhistory (CASSANDRA-9758)
  • Fix rare race where older gossip states can be shadowed (CASSANDRA-10366)
  • Fix consolidating racks violating the RF contract (CASSANDRA-10238)

DataStax Enterprise 4.8 

DataStax Enterprise 4.8 includes production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.9 version, including everything listed under 2.1.10 in CHANGES.txt and:
  • (Pig) support BulkOutputFormat as a URL parameter (CASSANDRA-7410)
  • BATCH statement is broken in cqlsh (CASSANDRA-10272)
  • Added configurable warning threshold for GC duration (CASSANDRA-8907)
  • (cqlsh) Make cqlsh PEP8 compliant (CASSANDRA-10066)
  • (cqlsh) Fix error when starting cqlsh with --debug (CASSANDRA-10282)
  • Scrub, cleanup and upgrade do not unmark compacting until all operations have completed, regardless of the occurrence of exceptions (CASSANDRA-10274)
  • Fix handling of streaming EOF (CASSANDRA-10206)
  • Only check KeyCache when it is enabled (CASSANDRA-9872)
  • Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
  • (cqlsh) update list of CQL keywords (CASSANDRA-9232)
  • Disallow decommission when node is in drained state (CASSANDRA-8741)