[
https://issues.apache.org/jira/browse/CASSANDRA-18617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17737637#comment-17737637
]
Andres de la Peña commented on CASSANDRA-18617:
-----------------------------------------------
Placing all the system table names in a static constant would work, and we
could have a utest verifying that that constants matches the actual schema.
Although that would be quite a big constant, since there are 45 system tables
to be manually put in it.
Maybe another way we could do this is keeping {{table_count_warn_threshold}} in
{{Config.java}} but not in {{{}cassandra.yaml{}}}, and then do the calculations
in {{{}GuardrailsOptions#getTablesWarnThreshold{}}}, instead of using a
converter? That method is called every time the guardrail is called, when
schema initialization has already happened. So something like:
{code:java}
@Override
public int getTablesWarnThreshold()
{
if (config.tables_warn_threshold < 0 && config.table_count_warn_threshold >
0)
{
int totalSystemTables = SchemaConstants.getSystemKeyspaces()
.stream()
.filter(keyspace ->
!SchemaConstants.isVirtualSystemKeyspace(keyspace))
.map(Keyspace::open)
.mapToInt(keyspace ->
keyspace.getColumnFamilyStores().size())
.sum();
return Math.min(-1, config.table_count_warn_threshold -
totalSystemTables);
}
return config.tables_warn_threshold;
}
{code}
wdyt?
> Disable the deprecated keyspace/table thresholds and convert them to
> Guardrails
> -------------------------------------------------------------------------------
>
> Key: CASSANDRA-18617
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18617
> Project: Cassandra
> Issue Type: Improvement
> Components: Feature/Guardrails
> Reporter: dan jatnieks
> Assignee: dan jatnieks
> Priority: Normal
> Fix For: 5.x
>
>
> The non-guardrail thresholds 'keyspace_count_warn_threshold' and
> 'table_count_warn_threshold' configuration settings were first added with
> CASSANDRA-16309 in 4.0-beta4 and have subsequently been deprecated since
> 4.1-alpha in CASSANDRA-17195 when they were replaced/migrated to guardrails
> as part of CEP-3 (Guardrails).
> These thresholds should now be removed from cassandra.yaml, while still
> allowed in existing yaml files.
> The old thresholds will be disabled by removing their default values from
> Config.java, and any existing values for these thresholds will be converted
> to the new guardrails using the '@Replaces' tag on the corresponding
> guardrail values.
> Since the old thresholds considered the number of system keyspace/tables in
> their values, the '@Replaces' conversion will subtract the current number of
> system tables from the old value and log a descriptive message.
> See dev list discussion:
> https://lists.apache.org/thread/0zjg08hrd6xv7lhvo96frz456b2rvr8b
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]