This is an automated email from the ASF dual-hosted git repository. michaelsembwever pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 5211060af921996913e411c6e7824a0575fddbd8 Merge: 7238b62fa2 652a497a93 Author: mck <[email protected]> AuthorDate: Thu Nov 5 23:44:17 2026 +0100 Merge branch 'cassandra-6.0' into trunk * cassandra-6.0: Prevent tiny repair SSTables from accumulating under UCS CHANGES.txt | 1 + NEWS.txt | 10 + .../pages/managing/operating/compaction/ucs.adoc | 9 + .../cql-commands/compact-subproperties.adoc | 7 + pylib/cqlshlib/cql3handling.py | 3 +- pylib/cqlshlib/test/test_cqlsh_completion.py | 2 + .../config/CassandraRelevantProperties.java | 1 + .../cassandra/db/compaction/ShardManager.java | 89 +++- .../db/compaction/ShardManagerDiskAware.java | 6 +- .../db/compaction/ShardManagerNoDisks.java | 19 +- .../db/compaction/ShardManagerTrivial.java | 5 + .../db/compaction/UnifiedCompactionStrategy.java | 90 +++- .../db/compaction/UnifiedCompactionStrategy.md | 28 ++ .../db/compaction/unified/Controller.java | 63 ++- .../cassandra/io/sstable/format/SSTableReader.java | 2 +- .../org/apache/cassandra/metrics/TableMetrics.java | 61 ++- .../test/UnifiedCompactionDensitiesTest.java | 342 +++++++++++++ .../test/UnifiedCompactionHarryTest.java | 147 ++++++ .../cassandra/fuzz/sai/StaticsTortureTest.java | 6 +- .../apache/cassandra/harry/cql/DeleteHelper.java | 71 +-- .../apache/cassandra/harry/cql/WriteHelper.java | 20 +- .../apache/cassandra/harry/dsl/HistoryBuilder.java | 2 +- .../cassandra/harry/dsl/HistoryBuilderHelper.java | 16 +- .../harry/model/PartitionStateBuilder.java | 5 +- .../org/apache/cassandra/harry/op/Operations.java | 2 +- .../cassandra/harry/test/HarryCompactionTest.java | 9 +- .../cassandra/harry/test/HistoryBuilderTest.java | 111 ++++- .../cql3/validation/operations/AlterTest.java | 19 + .../cql3/validation/operations/CreateTest.java | 12 + .../cassandra/db/compaction/ShardManagerTest.java | 306 +++++++++++- .../compaction/UnifiedCompactionStrategyTest.java | 551 ++++++++++++++++++++- .../db/compaction/unified/ControllerTest.java | 60 +++ .../compaction/unified/ParallelizedTasksTest.java | 2 +- .../unified/ShardedCompactionWriterTest.java | 4 +- .../apache/cassandra/metrics/TableMetricsTest.java | 67 +++ 35 files changed, 2017 insertions(+), 131 deletions(-) diff --cc NEWS.txt index 4171684d29,a8368a7ca6..232748d149 --- a/NEWS.txt +++ b/NEWS.txt @@@ -79,44 -80,10 +79,54 @@@ using the provided 'sstableupgrade' too New features ------------ + + - UnifiedCompactionStrategy has a new table option max_sstables_per_shard_factor (default 10). When a level has + no overlapping sstables to compact and one of its shards holds more than this factor times the level's fanout + sstables, all sstables in that shard are compacted together. Set it to 0 to keep the previous behaviour. + (CASSANDRA-21615) + - CEP-49 - it is possible to implement custom compression providers, e.g. + integrating with a specialized hardware which makes de/compression faster. + See CASSANDRA-20975 for more information. + - It is now possible to bootstrap a cluster's initial superuser role without + creating the 'cassandra/cassandra' password, by configuring 'default_role_initializer' + in cassandra.yaml. The new MutualTlsDefaultRoleInitializer creates the role + passwordless and maps a client certificate identity onto it instead, for + deployments that authenticate over mutual TLS. PasswordDefaultRoleInitializer + remains the default and produces the historical behaviour. See CASSANDRA-21546 + for more information. + +Upgrading +--------- ++ - Do not set the UnifiedCompactionStrategy table option max_sstables_per_shard_factor until every node runs ++ 6.0-alpha3 or later, or 5.0.10 or later. Earlier versions, including 6.0-alpha1 and 6.0-alpha2, do not ++ recognize the option. When one of them coordinates a schema change that validates the whole table definition, ++ such as ALTER TABLE ... ADD, it rejects the change for any table that sets the option. Before downgrading, ++ remove the option from those tables with ALTER TABLE ... WITH compaction = {...} listing the other options ++ only. (CASSANDRA-21615) + - memtable_offheap_space: 0 is now rejected at startup when memtable_allocation_type is + offheap_buffers or offheap_objects. Set a positive memtable_offheap_space, or an allocation + type that does not allocate off-heap. See CASSANDRA-21019. + + - trickle_fsync is by default set to "true" instead of "false" in cassandra.yaml (see CASSANDRA-21572) + - Authorizing a batch or an Accord transaction now performs the table permission checks once per run of + consecutive statements on the same table rather than once per statement. The permissions required are + unchanged, and the datacenter and CIDR checks that ride along with them still run at least once per + request. Auth cache request/hit/miss counts and the system_views.cidr_filtering_metrics_* counts and + latencies will therefore report fewer events than before. (see CASSANDRA-21606) + - The hostname column in system_views.clients will no longer perform a reverse DNS lookup and will instead + return the same value as the address column. This avoids the risk of client connections overwhelming + DNS. (CASSANDRA-21539) + - SAI Memtable-attached indexes are now split into `cassandra.memtable.shard.count` shards by default. + +Deprecation +----------- + + +6.0 +=== + +New features +------------ - Query paging supports byte budgets for client fetch pages and internal replica reads (CASSANDRA-11745). Set a byte fetch size through a supporting client using native protocol v5 or later; replica reads inherit that budget. For aggregation queries without a client page size, configure aggregation_subpage_size in --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
