Skip to content

Support Apache Cassandra 6.0 - #379

Open
michaelsembwever wants to merge 1 commit into
apache:trunkfrom
thelastpickle:mck/494/trunk
Open

Support Apache Cassandra 6.0#379
michaelsembwever wants to merge 1 commit into
apache:trunkfrom
thelastpickle:mck/494/trunk

Conversation

@michaelsembwever

@michaelsembwever michaelsembwever commented Aug 23, 2026

Copy link
Copy Markdown
Member

https://issues.apache.org/jira/browse/CASSSIDECAR-494

Register a 6.0 adapter and adapt to the surfaces that 6.0 changed. This adds no new Sidecar endpoints.

Add adapters/adapters-cassandra60, which extends the 5.0 module and overrides storage operations alone. Cassandra 6.0 deprecates the StorageServiceMBean snapshot methods in favour of a SnapshotManager MBean, so Cassandra60StorageOperations routes takeSnapshot and clearSnapshot there. Only CassandraDaemon registers that MBean, so an in-JVM dtest node needs the deprecated methods; the class falls back to them and classifies failures on both routes alike.

Adapt three more 6.0 surfaces. CASSANDRA-21539 removed the hostname column from system_views.clients, 6.0 added authentication_mode, and under CEP-21 Gossiper takes the release version from cluster metadata, which renders a pre-release differently.

Fail fast for change data capture on 6.0. cassandra-analytics 0.4.0 ships no 6.0 commit log bridge, so name the unsupported release rather than read its commit logs with a bridge for another format.

Name 6.0 in the test matrix. The matrix tested a branch called trunk and labelled it 5.1; that release line is now cassandra-6.0, and trunk has become 7.0. Pin a cassandra-6.0 dtest jar and keep trunk buildable on demand.

Sort factories in CassandraVersionProvider.Builder.build(). Selection seeds its answer with the first element and only moves upward, so it was correct only when every registration site added factories in ascending order.

Register a 6.0 adapter and adapt to the surfaces that 6.0 changed.  This adds no new Sidecar endpoints.

Add adapters/adapters-cassandra60, which extends the 5.0 module and overrides storage operations alone.  Cassandra 6.0 deprecates the StorageServiceMBean snapshot methods in favour of a SnapshotManager MBean, so Cassandra60StorageOperations routes takeSnapshot and clearSnapshot there.  Only CassandraDaemon registers that MBean, so an in-JVM dtest node needs the deprecated methods; the class falls back to them and classifies failures on both routes alike.

Adapt four more 6.0 surfaces.  CASSANDRA-21539 removed the hostname column from system_views.clients, 6.0 added authentication_mode, and under CEP-21 Gossiper takes the release version from cluster metadata, which renders a pre-release differently.  6.0 also raises an IllegalArgumentException for an unknown keyspace where earlier releases raised an AssertionError, so TokenRangeReplicaMapHandler accepts both and keeps answering 404.

Fail fast for change data capture on 6.0.  cassandra-analytics 0.4.0 ships no 6.0 commit log bridge, so name the unsupported release rather than read its commit logs with a bridge for another format.

Name 6.0 in the test matrix.  The matrix tested a branch called trunk and labelled it 5.1; that release line is now cassandra-6.0, and trunk has become 7.0.  Pin a cassandra-6.0 dtest jar and keep trunk buildable on demand.

Sort factories in CassandraVersionProvider.Builder.build().  Selection seeds its answer with the first element and only moves upward, so it was correct only when every registration site added factories in ascending order.

 patch by Mick Semb Wever; reviewed by xxx for CASSSIDECAR-494

Assisted-By: Claude Code:claude-opus-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant