[
https://issues.apache.org/jira/browse/CASSANALYTICS-77?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew D updated CASSANALYTICS-77:
----------------------------------
Description:
With Cassandra 5 and the cassandra-latest.yaml, UCS is selected as the default
compaction strategy. When upgrading a cluster, via a datacenter switch for
example, the compaction for system_auth, system_distributed and system_traces
gets updated to use UCS even though there's still Cassandra 4 nodes within the
cluster. This leads to a failure mode where a Cassandra 4 node cannot start up
due to an unknown compaction strategy:
{code:java}
ERROR [main] 2025-07-02 17:09:39,693 CassandraDaemon.java:898 - Exception
encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Unable to find
compaction strategy class
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy' {code}
Even with storage_compatibility_mode, the default compaction strategy is used.
To mitigate this, we can update the default compaction strategy however the
system_schema still indicates that UCS is used:
{code:java}
keyspace_name | table_name | compaction
--------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
system_auth | cidr_groups | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | cidr_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | identity_to_role | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | network_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | resource_role_permissons_index | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | role_members | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | role_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | roles | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'} {code}
There isn't an easy way to update the compaction strategy for these tables
either.
was:
Hi,
With Cassandra 5 and the cassandra-latest.yaml, UCS is selected as the default
compaction strategy. When upgrading a cluster, via a datacenter switch for
example, the compaction for system_auth, system_distributed and system_traces
gets updated to use UCS even though there's still Cassandra 4 nodes within the
cluster. This leads to a failure mode where a Cassandra 4 node cannot start up
due to an unknown compaction strategy:
{code:java}
ERROR [main] 2025-07-02 17:09:39,693 CassandraDaemon.java:898 - Exception
encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Unable to find
compaction strategy class
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy' {code}
Even with storage_compatibility_mode, the default compaction strategy is used.
To mitigate this, we can update the default compaction strategy however the
system_schema still indicates that UCS is used:
{code:java}
keyspace_name | table_name | compaction
--------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
system_auth | cidr_groups | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | cidr_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | identity_to_role | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | network_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | resource_role_permissons_index | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | role_members | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | role_permissions | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'}
system_auth | roles | {'class':
'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
'target_sstable_size': '1GiB'} {code}
There isn't an easy way to update the compaction strategy for these tables
either.
> Cassandra uses default compaction strategy in storage_compatibility_mode
> which can lead to unsupported compaction strategy during upgrades
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CASSANALYTICS-77
> URL: https://issues.apache.org/jira/browse/CASSANALYTICS-77
> Project: Apache Cassandra Analytics
> Issue Type: Bug
> Reporter: Andrew D
> Priority: Normal
>
> With Cassandra 5 and the cassandra-latest.yaml, UCS is selected as the
> default compaction strategy. When upgrading a cluster, via a datacenter
> switch for example, the compaction for system_auth, system_distributed and
> system_traces gets updated to use UCS even though there's still Cassandra 4
> nodes within the cluster. This leads to a failure mode where a Cassandra 4
> node cannot start up due to an unknown compaction strategy:
> {code:java}
> ERROR [main] 2025-07-02 17:09:39,693 CassandraDaemon.java:898 - Exception
> encountered during startup
> org.apache.cassandra.exceptions.ConfigurationException: Unable to find
> compaction strategy class
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy' {code}
> Even with storage_compatibility_mode, the default compaction strategy is
> used. To mitigate this, we can update the default compaction strategy however
> the system_schema still indicates that UCS is used:
> {code:java}
> keyspace_name | table_name | compaction
> --------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> system_auth | cidr_groups | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | cidr_permissions | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | identity_to_role | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | network_permissions | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | resource_role_permissons_index | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | role_members | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | role_permissions | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'}
> system_auth | roles | {'class':
> 'org.apache.cassandra.db.compaction.UnifiedCompactionStrategy',
> 'max_sstables_to_compact': '64', 'min_sstable_size': '100MiB',
> 'scaling_parameters': 'T4', 'sstable_growth': '0.3333333333333333',
> 'target_sstable_size': '1GiB'} {code}
> There isn't an easy way to update the compaction strategy for these tables
> either.
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]