This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 92530a18db31715bc0e9ec2363a735bc034ee530
Merge: 08b6da5ce8 f771e964e3
Author: Marcus Eriksson <[email protected]>
AuthorDate: Fri Aug 28 08:06:38 2026 +0200

    Merge branch 'cassandra-6.0' into trunk

 CHANGES.txt                                        |   1 +
 conf/cassandra.yaml                                |   5 +
 conf/cassandra_latest.yaml                         |   5 +
 src/java/org/apache/cassandra/config/Config.java   |   1 +
 .../apache/cassandra/config/GuardrailsOptions.java |  27 ++++
 .../cassandra/db/guardrails/CMSSizeGuardrail.java  |  56 +++++++
 .../apache/cassandra/db/guardrails/Guardrails.java |  18 +++
 .../cassandra/db/guardrails/GuardrailsConfig.java  |   5 +
 .../cassandra/db/guardrails/GuardrailsMBean.java   |  11 ++
 .../org/apache/cassandra/tcm/CMSOperations.java    |  24 ++-
 .../GuardrailCmsSizeReconfigurationTest.java       | 164 +++++++++++++++++++++
 .../db/guardrails/GuardrailMinimumCmsSizeTest.java | 147 ++++++++++++++++++
 .../nodetool/GuardrailsConfigCommandsTest.java     |   9 +-
 13 files changed, 469 insertions(+), 4 deletions(-)

diff --cc CHANGES.txt
index c964df9aff,67d264132d..2f77beea8a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,14 -1,5 +1,15 @@@
 -6.0-alpha3
 +7.0
 + * Reject LIKE patterns with a wildcard (%) anywhere other than the start or 
end (CASSANDRA-21068)
 + * Support pluggable default role initialization (CASSANDRA-21546)
 + * Add prepared statement cache stats to nodetool info (CASSANDRA-14366)
 + * Don't increment client metrics on messaging service connection unpause 
(CASSANDRA-21491)
 + * Add nodetool getreplicas (CASSANDRA-17665)
 + * Implementation of CEP-49: Hardware-accelerated compression 
(CASSANDRA-20975)
 + * Avoid using ObjectUtils.getFirstNonNull in Schema (CASSANDRA-21394)
 + * Allow nodetool garbagecollect to take a user defined list of SSTables 
(CASSANDRA-16767)
 + * Add a guardrail for misprepared statements (CASSANDRA-21139)
 +Merged from 6.0:
+  * Add a guardrail to disallow reconfiguring CMS below a minimum size 
(CASSANDRA-19195)
   * Node can report DECOMMISSION_FAILED while actively leaving after a 
rejected decommission attempt (CASSANDRA-21583)
   * Make NoSpamLogger to use Caffeine cache instead of unbounded cache that 
could lead to memory exhaustion (CASSANDRA-21474)
   * Reduce overheads of isOrdinaryUser check performed by Guardrail.enabled 
(CASSANDRA-21589)
diff --cc conf/cassandra.yaml
index 16c6a2ec03,87eb79f53a..92fafa00de
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@@ -2614,12 -2594,10 +2614,17 @@@ drop_compact_storage_enabled: fals
  # maximum_replication_factor_warn_threshold: -1
  # maximum_replication_factor_fail_threshold: -1
  #
 +# Guardrail to warn or fail when a statement is prepared without bind markers 
(parameters).
 +# This prevents the Prepared Statement Cache from being flooded with unique 
entries caused
 +# by hardcoded literals. When warned is true, logs a warning on the usage of 
misprepared statements.
 +# When enabled is true, rejects misprepared statements with an error.
 +# prepared_statements_require_parameters_warned: true
 +# prepared_statements_require_parameters_enabled: false
++#
+ # Guardrail to fail an operator-requested CMS reconfiguration (nodetool cms 
reconfigure / JMX) when the resulting
+ # CMS size would be below this threshold. The CMS size is the aggregate 
replication factor across all datacenters.
+ # The check is skipped when the cluster has fewer nodes than the threshold. 
Defaults to -1 to disable.
+ # minimum_cms_size_fail_threshold: -1
  
  #role_name_policy:
  #  # Implementation class of a validator. When not in form of FQCN, the
diff --cc conf/cassandra_latest.yaml
index 15ca537498,f48096e8a4..4093ab9624
--- a/conf/cassandra_latest.yaml
+++ b/conf/cassandra_latest.yaml
@@@ -2385,12 -2365,10 +2385,17 @@@ drop_compact_storage_enabled: fals
  # maximum_replication_factor_warn_threshold: -1
  # maximum_replication_factor_fail_threshold: -1
  #
 +# Guardrail to warn or fail when a statement is prepared without bind markers 
(parameters).
 +# This prevents the Prepared Statement Cache from being flooded with unique 
entries caused
 +# by hardcoded literals. When warned is true, logs a warning on the usage of 
misprepared statements.
 +# When enabled is true, rejects misprepared statements with an error.
 +# prepared_statements_require_parameters_warned: true
 +# prepared_statements_require_parameters_enabled: false
++#
+ # Guardrail to fail an operator-requested CMS reconfiguration (nodetool cms 
reconfigure / JMX) when the resulting
+ # CMS size would be below this threshold. The CMS size is the aggregate 
replication factor across all datacenters.
+ # The check is skipped when the cluster has fewer nodes than the threshold. 
Defaults to -1 to disable.
+ # minimum_cms_size_fail_threshold: -1
  
  #role_name_policy:
  #  # Implementation class of a validator. When not in form of FQCN, the


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to