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]

Reply via email to