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:
- Cassandra changes in DataStax Enterprise 4.8.16
- No Cassandra changes in DataStax Enterprise 4.8.15
- Cassandra changes in DataStax Enterprise 4.8.14
- Cassandra changes in DataStax Enterprise 4.8.13
- Cassandra changes in DataStax Enterprise 4.8.12
- Cassandra changes in DataStax Enterprise 4.8.11
- Cassandra changes in DataStax Enterprise 4.8.10
- Cassandra changes in DataStax Enterprise 4.8.9
- Cassandra changes in DataStax Enterprise 4.8.8
- Cassandra changes in DataStax Enterprise 4.8.7
- Cassandra changes in DataStax Enterprise 4.8.6
- Cassandra changes in DataStax Enterprise 4.8.5
- Cassandra changes in DataStax Enterprise 4.8.4
- Cassandra changes in DataStax Enterprise 4.8.3
- Cassandra changes in DataStax Enterprise 4.8.2
- Cassandra changes in DataStax Enterprise 4.8.1
- Cassandra changes in DataStax Enterprise 4.8
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)