Cassandra changes

DataStax Enterprise 4.7 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.7.9 

DataStax Enterprise 4.7.9 includes these production-certified Cassandra changes that are in addition to the Cassandra™ 2.1.15 version:
  • Don't write shadowed range tombstone (CASSANDRA-12030)
  • Fix filtering on clustering columns when 2i is used (CASSANDRA-11907)
  • Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  • Improve digest calculation in the presence of overlapping tombstones (CASSANDRA-11349)

DataStax Enterprise 4.7.8 

DataStax Enterprise 4.7.8 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)
  • 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)
  • Start L0 STCS-compactions even if there is a L0 -> L1 compaction
  • + going (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)
  • Sane default (200Mbps) for inter-DC streaming througput (CASSANDRA-8708)

DataStax Enterprise 4.7.7 

DataStax Enterprise 4.7.7 includes these production-certified Cassandra changes.
  • Sane default (200Mbps) for inter-DC streaming througput (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.7.6 

DataStax Enterprise 4.7.6 includes these production-certified Cassandra changes.
  • 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)
  • Allow custom time_format for COPY TO (CASSANDRA-8970)
  • CompressionInfo will be fsynced on close (CASSANDRA-10534)

DataStax Enterprise 4.7.5 

DataStax Enterprise 4.7.5 includes these production-certified Cassandra changes.
  • Improve handling of dead nodes in gossip (CASSANDRA-10298)
  • Fix logback-tools.xml incorrectly configured for output 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.7.4 

DataStax Enterprise 4.7.4 includes these production-certified Cassandra changes.
  • 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)
  • (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 occurence 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)
  • Avoid race condition during read repair (CASSANDRA-9460)
  • (cqlsh) default load-from-file encoding to utf-8 (CASSANDRA-9898)
  • Avoid returning Permission.NONE when failing to query users table (CASSANDRA-10168)
  • (cqlsh) Allow encoding to be set through command line (CASSANDRA-10004)
  • Add new JMX methods to change local compaction strategy (CASSANDRA-9965)
  • Write hints for paxos commits (CASSANDRA-7342)
  • (cqlsh) Fix timestamps before 1970 on Windows, always use UTC for timestamp display (CASSANDRA-10000)
  • (cqlsh) Avoid overwriting new config file with old config when both exist (CASSANDRA-9777)
  • Release snapshot selfRef when doing snapshot repair (CASSANDRA-9998)
  • Fix nodetool info error when the node is not joined (CASSANDRA-9031)
  • Make getFullyExpiredSSTables less expensive (CASSANDRA-9882)
  • Add tool to find why expired sstables are not getting dropped (CASSANDRA-10015)
  • Remove erroneous pending HH tasks from tpstats/jmx (CASSANDRA-9129)

DataStax Enterprise 4.7 

DataStax Enterprise 4.7 includes these production-certified Cassandra changes.
  • Warn on misuse of unlogged batches (CASSANDRA-9282)
  • Failure detector detects and ignores local pauses (CASSANDRA-9183)
  • Add utility class to support for rate limiting a given log statement (CASSANDRA-9029)
  • Add missing consistency levels to cassandra-stess (CASSANDRA-9361)
  • Fix commitlog getCompletedTasks to not increment (CASSANDRA-9339)
  • Fix for harmless exceptions logged as ERROR (CASSANDRA-8564)
  • Delete processed sstables in sstablesplit/sstableupgrade (CASSANDRA-8606)
  • Improve sstable exclusion from partition tombstones (CASSANDRA-9298)
  • Validate the indexed column rather than the cell's contents for 2i (CASSANDRA-9057)
  • Add support for top-k custom 2i queries (CASSANDRA-8717)
  • Fix error when dropping table during compaction (CASSANDRA-9251)
  • cassandra-stress supports validation operations over user profiles (CASSANDRA-8773)
  • Add support for rate limiting log messages (CASSANDRA-9029)
  • Log the partition key with tombstone warnings (CASSANDRA-8561)
  • Reduce runWithCompactionsDisabled poll interval to 1ms (CASSANDRA-9271)
  • Fix PITR commitlog replay (CASSANDRA-9195)
  • GCInspector logs very different times (CASSANDRA-9124)
  • Fix deleting from an empty list (CASSANDRA-9198)
  • Update tuple and collection types that use a user-defined type when that UDT is modified (CASSANDRA-9148, CASSANDRA-9192)
  • Use higher timeout for prepair and snapshot in repair (CASSANDRA-9261)
  • Fix anticompaction blocking ANTI_ENTROPY stage (CASSANDRA-9151)
  • Repair waits for anticompaction to finish (CASSANDRA-9097)
  • Fix streaming not holding ref when stream error (CASSANDRA-9295)
  • Fix canonical view returning early opened SSTables (CASSANDRA-9396)
  • (cqlsh) Add LOGIN command to switch users (CASSANDRA-7212)
  • Clone SliceQueryFilter in AbstractReadCommand implementations (CASSANDRA-8940)
  • Push correct protocol notification for DROP INDEX (CASSANDRA-9310)
  • token-generator - generated tokens too long (CASSANDRA-9300)
  • Fix counting of tombstones for TombstoneOverwhelmingException (CASSANDRA-9299)
  • Fix ReconnectableSnitch reconnecting to peers during upgrade (CASSANDRA-6702)
  • Include keyspace and table name in error log for collections over the size limit (CASSANDRA-9286)
  • Avoid potential overlap in LCS with single-partition sstables (CASSANDRA-9322)
  • Log warning message when a table is queried before the schema has fully propagated (CASSANDRA-9136)
  • Overload SecondaryIndex#indexes to accept the column definition (CASSANDRA-9314)
  • (cqlsh) Add SERIAL and LOCAL_SERIAL consistency levels (CASSANDRA-8051)
  • Fix index selection during rebuild with certain table layouts (CASSANDRA-9281)
  • Fix partition-level-delete-only workload accounting (CASSANDRA-9194)
  • Allow scrub to handle corrupted compressed chunks (CASSANDRA-9140)
  • Fix assertion error when resetlocalschema is run during repair (CASSANDRA-9249)
  • Disable single sstable tombstone compactions for DTCS by default (CASSANDRA-9234)
  • IncomingTcpConnection thread is not named (CASSANDRA-9262)
  • Close incoming connections when MessagingService is stopped (CASSANDRA-9238)
  • Fix streaming hang when retrying (CASSANDRA-9132)