Cassandra changes

DataStax Enterprise 5.0 includes DataStax production-certified Cassandra changes in addition to the specified Apache Cassandra release.

Important: 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 5.0.10

DataStax Enterprise 5.0.10 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.14 version:
  • Change repair midpoint logging for tiny ranges (CASSANDRA-13603)
  • Better handle corrupt final commitlog segment (CASSANDRA-11995)
  • StreamingHistogram is not thread safe (CASSANDRA-13756)
  • Fix MV timestamp issues (CASSANDRA-11500)
  • Better tolerate improperly formatted bcrypt hashes (CASSANDRA-13626)
  • Fix race condition in read command serialization (CASSANDRA-13363)
  • Enable segement creation before recovering commitlogs (CASSANDRA-13587)
  • Fix AssertionError in short read protection (CASSANDRA-13747)
  • Don't skip corrupted sstables on startup (CASSANDRA-13620)
  • Fix the merging of cells with different user type versions (CASSANDRA-13776)
  • Copy session properties on do_login (CASSANDRA-13640)
  • Potential AssertionError during ReadRepair of range tombstone and partition deletions (CASSANDRA-13719)
  • Don't let stress write warmup data if n=0 (CASSANDRA-13773)
  • Gossip thread slows down when using batch commit log (CASSANDRA-12966)
  • Randomize batchlog endpoint selection with only 1 or 2 racks (CASSANDRA-12884)
  • Fix digest calculation for counter cells (CASSANDRA-13750)
  • Fix ColumnDefinition.cellValueType() for non-frozen collection and change SSTabledump to use type.toJSONString() (CASSANDRA-13573)
  • Skip materialized view addition if the base table doesn't exist (CASSANDRA-13737)
  • Drop table should remove corresponding entries in dropped_columns table (CASSANDRA-13730)
  • Log warn message until legacy auth tables have been migrated (CASSANDRA-13371)
  • Fix incorrect [2.1 <- 3.0] serialization of counter cells created in 2.0 (CASSANDRA-13691)
  • Fix invalid writetime for null cells (CASSANDRA-13711)
  • Fix ALTER TABLE statement to atomically propagate changes to the table and its MVs (CASSANDRA-12952)
  • Fixed ambiguous output of nodetool tablestats command (CASSANDRA-13722)
  • JMXEnabledThreadPoolExecutor with corePoolSize equal to maxPoolSize (Backport CASSANDRA-13329)
  • Fix Digest mismatch Exception if hints file has UnknownColumnFamily (CASSANDRA-13696)
  • Purge tombstones created by expired cells (CASSANDRA-13643)
  • Make concat work with iterators that have different subsets of columns (CASSANDRA-13482)
  • Set test.runners based on cores and memory size (CASSANDRA-13078)
  • Allow different NUMACTL_ARGS to be passed in (CASSANDRA-13557)
  • Allow native function calls in CQLSSTableWriter (CASSANDRA-12606)
  • Fix secondary index queries on COMPACT tables (CASSANDRA-13627)
  • Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568)
  • sstabledump reports incorrect usage for argument order (CASSANDRA-13532)
  • Fix load over calculated issue in IndexSummaryRedistribution (CASSANDRA-13738)
  • Fix compaction and flush exception not captured (CASSANDRA-13833)
  • Uncaught exceptions in Netty pipeline (CASSANDRA-13649)
  • Prevent integer overflow on exabyte filesystems (CASSANDRA-13067)
  • Fix queries with LIMIT and filtering on clustering columns (CASSANDRA-11223)
  • Fix potential NPE when resume bootstrap fails (CASSANDRA-13272)
  • Fix toJSONString for the UDT, tuple and collection types (CASSANDRA-13592)
  • Fix nested Tuples/UDTs validation (CASSANDRA-13646)
  • Remove stress-test target in CircleCI as it's not existing (CASSANDRA-13775)
  • Clone HeartBeatState when building gossip messages. Make its generation/version volatile (CASSANDRA-13700)
  • Ensure int overflow doesn't occur when calculating large partition warning size (CASSANDRA-13172)
  • Nodes started with join_ring=False should be able to serve requests when authentication is enabled (CASSANDRA-11381)
  • Avoid assertion error when IndexSummary > 2G (CASSANDRA-12014)

move gossip heartbeat back to its own thread (CASSANDRA-2554)

DataStax Enterprise 5.0.9

DataStax Enterprise 5.0.9 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.13 version:
  • Ensure consistent view of partition columns between coordinator and replica in ColumnFilter (CASSANDRA-13004)
  • Failed unregistering mbean during drop keyspace (CASSANDRA-13346)
  • nodetool scrub/cleanup/upgradesstables exit code is wrong (CASSANDRA-13542)
  • Fix the reported number of sstable data files accessed per read (CASSANDRA-13120)
  • Fix schema digest mismatch during rolling upgrades from versions before 3.0.12 (CASSANDRA-13559)
  • Upgrade JNA version to 4.4.0 (CASSANDRA-13072)
  • Interned ColumnIdentifiers should use minimal ByteBuffers (CASSANDRA-13533)
  • ReverseIndexedReader may drop rows during 2.1 to 3.0 upgrade (CASSANDRA-13525)
  • Fix repair process violating start/end token limits for small ranges (CASSANDRA-13052)
  • Add storage port options to sstableloader (CASSANDRA-13518)
  • Properly handle quoted index names in cqlsh DESCRIBE output (CASSANDRA-12847)
  • Avoid reading static row twice from old format sstables (CASSANDRA-13236)
  • Fix NPE in StorageService.excise() (CASSANDRA-13163)
  • Expire OutboundTcpConnection messages by a single Thread (CASSANDRA-13265)
  • Fail repair if insufficient responses received (CASSANDRA-13397)
  • Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276)
  • Avoid name clashes in CassandraIndexTest (CASSANDRA-13427)
  • Handling partially written hint files (CASSANDRA-12728)
  • Interrupt replaying hints on decommission (CASSANDRA-13308)
  • Fix schema version calculation for rolling upgrades (CASSANDRA-13441)
  • cqlsh COPY FROM: increment error count only for failures, not for attempts (CASSANDRA-13209)
  • Make reading of range tombstones more reliable (CASSANDRA-12811)
  • Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213)
  • Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410)
  • Fix NPE issue in StorageService (CASSANDRA-13060)
  • Avoid starting gossiper in RemoveTest (CASSANDRA-13407)
  • Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393)
  • Fix secondary 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 5.0.8

DataStax Enterprise 5.0.8 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.12 version:
  • Fix view builder bug that can filter out data on restart (CASSANDRA-13405)
  • Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400)
  • Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395)
  • Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020)
  • Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389)
  • Legacy deserializer can create empty range tombstones (CASSANDRA-13341)
  • Use the Kernel32 library to retrieve the PID on Windows and fix startup checks (CASSANDRA-13333)
  • Fix code to not exchange schema across major versions (CASSANDRA-13274)
  • Dropping column results in "corrupt" SSTable (CASSANDRA-13337)
  • Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340)
  • Fix CONTAINS filtering for null collections (CASSANDRA-13246)
  • Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216)
  • Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320)
  • Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305)
  • Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238)
  • Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384)
  • Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773)
  • Discard in-flight shadow round responses (CASSANDRA-12653)
  • Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153)
  • Wrong logger name in AnticompactionTask (CASSANDRA-13343)
  • Commitlog replay may fail if last mutation is within 4 bytes of end of segment (CASSANDRA-13282)
  • Fix queries updating multiple time the same list (CASSANDRA-13130)
  • Fix GRANT/REVOKE when keyspace isn't specified (CASSANDRA-13053)
  • Prevent data loss on upgrade 2.1 - 3.0 by adding component separator to LogRecord absolute path (CASSANDRA-13294)
  • Improve testing on macOS by eliminating sigar logging (CASSANDRA-13233)
  • Cqlsh copy-from should error out when csv contains invalid data for collections (CASSANDRA-13071)
  • Update c.yaml doc for offheap memtables (CASSANDRA-13179)
  • Faster StreamingHistogram (CASSANDRA-13038)
  • Avoid race on receiver by starting streaming sender thread after sending init message (CASSANDRA-12886)
  • Fix "multiple versions of ant detected..." when running ant test (CASSANDRA-13232)
  • Coalescing strategy sleeps too much (CASSANDRA-13090)
  • Remove unused repositories (CASSANDRA-13278)
  • Fix JVM metric names (CASSANDRA-13103)

DataStax Enterprise 5.0.7

DataStax Enterprise 5.0.7 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.11 version:
  • Fix flaky LongLeveledCompactionStrategyTest (CASSANDRA-12202)
  • Fix failing COPY TO STDOUT (CASSANDRA-12497)
  • Exceptions encountered calling getSeeds() breaks OTC thread (CASSANDRA-13018)
  • Remove unnecessary assertion from AntiCompactionTest (CASSANDRA-13070)
  • Log stacktrace of uncaught exceptions (CASSANDRA-13108)
  • Fix cqlsh COPY for dates before 1900 (CASSANDRA-13185)
  • Fix ColumnCounter::countAll behaviour for reverse queries (CASSANDRA-13222)
  • Legacy deserializer can create unexpected boundary range tombstones (CASSANDRA-13237)

DataStax Enterprise 5.0.6

DataStax Enterprise 5.0.6 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.10 version:
  • Temporarily fix bug that creates commit log when running offline tools (CASSANDRA-8616)
  • Add repaired percentage metric (CASSANDRA-11503)
  • Set javac encoding to utf-8 (CASSANDRA-11077)
  • Add parent repair session id to anticompaction log message (CASSANDRA-12186)
  • Fix assertion for certain legacy range tombstone pattern (CASSANDRA-12203)
  • Fixed flacky SSTableRewriterTest: check file counts before calling validateCFS (CASSANDRA-12348)
  • Remove ALTER TYPE support (CASSANDRA-12443)
  • Stress daemon help is incorrect (CASSANDRA-12563)
  • Fix deserialization of 2.x DeletedCells (CASSANDRA-12620)
  • Replace empty strings with null values if they cannot be converted (CASSANDRA-12794)
  • Fix DELETE and UPDATE queries with empty IN restrictions (CASSANDRA-12829)
  • Fix race causing infinite loop if Thrift server is stopped before it starts listening (CASSANDRA-12856)
  • Remove support for non-JavaScript UDFs (CASSANDRA-12883)
  • Improve contention handling on failure to acquire MV lock for streaming and hints (CASSANDRA-12905)
  • cqlsh copy-from: encode column names to avoid primary key parsing errors (CASSANDRA-12909)
  • Better error when modifying function permissions without explicit keyspace (CASSANDRA-12925)
  • CompactionTasks now correctly drops sstables out of compaction when not enough disk space is available (CASSANDRA-12979)
  • Fix handling of nulls and unsets in IN conditions (CASSANDRA-12981)
  • Mark MVs as built after successful bootstrap (CASSANDRA-12984)
  • Fix speculative retry bugs (CASSANDRA-13009)
  • Fix DynamicEndpointSnitch noop in multi-datacenter situations (CASSANDRA-13074)
  • Indexer is not correctly invoked when building indexes over sstables (CASSANDRA-13075)
  • Read repair is not blocking repair to finish in foreground repair (CASSANDRA-13115)
  • Dump threads when unit tests time out (CASSANDRA-13117)
  • Abort or retry on failed hints delivery (CASSANDRA-13124)
  • Fix handling of partition with partition-level deletion plus live rows in sstabledump (CASSANDRA-13177)
  • Provide user workaround when system_schema.columns does not contain entries for a table that's in system_schema.tables (CASSANDRA-13180)

DataStax Enterprise 5.0.5

DataStax Enterprise 5.0.5 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.10 version:
  • Always perform collision check before joining ring (CASSANDRA-10134)
  • Avoid blocking gossip during pending range calculation (CASSANDRA-12281)
  • Add pre- and post-shutdown hooks to Storage Service (CASSANDRA-12461)
  • Prevent reloading of logback.xml from UDF sandbox (CASSANDRA-12535)
  • LocalToken ensures token values are cloned on heap (CASSANDRA-12651)
  • Do not specify local address on outgoing connection when listen_on_broadcast_address is set (CASSANDRA-12673)
  • Nodetool should use a more sane max heap size (CASSANDRA-12739)
  • Set RPC_READY to false when draining or if a node is marked as shutdown (CASSANDRA-12781)
  • Fix purgeability of tombstones with max timestamp (CASSANDRA-12792)
  • Reduce granuality of OpOrder.Group during index build (CASSANDRA-12796)
  • Reject default_time_to_live option when creating or altering MVs (CASSANDRA-12868)
  • Fix leak on skipped SSTables in sstableupgrade (CASSANDRA-12899)
  • Reenable HeapPool (CASSANDRA-12900)
  • Fail repair if participant dies during sync or anticompaction (CASSANDRA-12901)
  • cqlsh: fix DESC TYPES errors (CASSANDRA-12914)
  • AnticompactionRequestSerializer serializedSize is incorrect (CASSANDRA-12934)
  • Use saved tokens when setting local tokens on StorageService.joinRing (CASSANDRA-12935)
  • Make sure sstables only get committed when it's safe to discard commit log records (CASSANDRA-12956)
  • Test bind parameters and unset parameters in InsertUpdateIfConditionTest (CASSANDRA-12980)
  • Nodetool compactionstats fails with NullPointerException (CASSANDRA-13021)
  • Thread local pools never cleaned up (CASSANDRA-13033)
  • Estimated TS drop-time histogram updated with Cell.NO_DELETION_TIME (CASSANDRA-13040)

DataStax Enterprise 5.0.4

DataStax Enterprise 5.0.4 includes no additional production-certified Cassandra changes in addition to the Apache Cassandra™ 3.0.10 version.

DataStax Enterprise 5.0.3

DataStax Enterprise 5.0.3 includes no additional production-certified Cassandra changes in addition to the Apache Cassandra™ 3.0.9 version.

DataStax Enterprise 5.0.2

DataStax Enterprise 5.0.2 includes these production-certified Cassandra changes that are in addition to the Apache Cassandra™ 3.0.8 version:
  • Fix clean interval not sent to commit log for empty memtable flush (CASSANDRA-12436)
  • Fix potential resource leak in RMIServerSocketFactoryImpl (CASSANDRA-12331)
  • Backport CASSANDRA-12002 (CASSANDRA-12177)
  • Make sure compaction stats are updated when compaction is interrupted (CASSANDRA-12100)
  • Fix potential bad messaging service message for paged range reads within mixed-version 3.x clusters (CASSANDRA-12249
  • Change commitlog and sstables to track dirty and clean intervals (CASSANDRA-11828)
  • NullPointerException during compaction on table with static columns (CASSANDRA-12336)
  • Fixed ConcurrentModificationException when reading metrics in GraphiteReporter (CASSANDRA-11823)
  • Fix upgrade of super columns on thrift (CASSANDRA-12335)
  • Fixed flacky BlacklistingCompactionsTest, switched to fixed size types and increased corruption size (CASSANDRA-12359)
  • Rerun ReplicationAwareTokenAllocatorTest on failure to avoid flakiness (CASSANDRA-12277)
  • Exception when computing read-repair for range tombstones (CASSANDRA-12263)
  • Lost counter writes in compact table and static columns (CASSANDRA-12219)
  • AssertionError with MVs on updating a row that isn't indexed due to a null value (CASSANDRA-12247)
  • Disable RR and speculative retry with EACH_QUORUM reads (CASSANDRA-11980)
  • Add option to override compaction space check (CASSANDRA-12180)
  • Faster startup by only scanning each directory for temporary files once (CASSANDRA-12114)
  • Respond with v1/v2 protocol header when responding to driver that attempts
  • + to connect with too low of a protocol version (CASSANDRA-11464)
  • NullPointerExpception when reading/compacting table (CASSANDRA-11988)
  • Fix problem with undeleteable rows on upgrade to new sstable format (CASSANDRA-12144)
  • Fix paging logic for deleted partitions with static columns (CASSANDRA-12107)
  • Wait until the message is being send to decide which serializer must be used (CASSANDRA-11393)
  • Fix migration of static thrift column names with non-text comparators (CASSANDRA-12147)
  • Fix upgrading sparse tables that are incorrectly marked as dense (CASSANDRA-11315)
  • Fix reverse queries ignoring range tombstones (CASSANDRA-11733)
  • Avoid potential race when rebuilding CFMetaData (CASSANDRA-12098)
  • Avoid missing sstables when getting the canonical sstables (CASSANDRA-11996)
  • Always select the live sstables when getting sstables in bounds (CASSANDRA-11944)
  • Fix column ordering of results with static columns for Thrift requests in
  • + a mixed 2.x/3.x cluster, also fix potential non-resolved duplication of
  • + those static columns in query results (CASSANDRA-12123)
  • Avoid digest mismatch with empty but static rows (CASSANDRA-12090)
  • Fix EOF exception when altering column type (CASSANDRA-11820)
  • Fix INSERT JSON, fromJson() support of smallint, tinyint types (CASSANDRA-12371)
  • Restore JVM metric export for metric reporters (CASSANDRA-12312)
  • Release sstables of failed stream sessions only when outgoing transfers are finished (CASSANDRA-11345)
  • Wait for tracing events before returning response and query at same consistency level client side (CASSANDRA-11465)
  • cqlsh copyutil should get host metadata by connected address (CASSANDRA-11979)
  • Fixed cqlshlib.test.remove_test_db (CASSANDRA-12214)
  • Synchronize ThriftServer::stop() (CASSANDRA-12105)
  • Use dedicated thread for JMX notifications (CASSANDRA-12146)
  • Improve streaming synchronization and fault tolerance (CASSANDRA-11414)
  • MemoryUtil.getShort() should return an unsigned short also for architectures not supporting unaligned memory accesses (CASSANDRA-11973)
  • Disable passing control to post-flush after flush failure to prevent data loss (CASSANDRA-11828)
  • Allow STCS-in-L0 compactions to reduce scope with LCS (CASSANDRA-12040)
  • cannot use cql since upgrading python to 2.7.11+ (CASSANDRA-11850)
  • Fix filtering on clustering columns when 2i is used (CASSANDRA-11907)

DataStax Enterprise 5.0.1

DataStax Enterprise 5.0.1 includes this production-certified Cassandra change that is in addition to the Apache Cassandra™ 3.0.7 version:

  • Fix migration of static thrift column names with non-text comparators (CASSANDRA-12147)

DataStax Enterprise 5.0

DataStax Enterprise 5.0 includes this production-certified Cassandra change that is in addition to the Cassandra™ 3.0.7 version:
  • Schema upgrade bug with super columns. (CASSANDRA-12023)