Cassandra upgrade to 5

Rene Cordier <[email protected]>
Newsgroups gmane.comp.jakarta.james.devel
Message-ID <[email protected]>
Hello everybody,

I've been tinkering around trying to upgrade to Cassandra 5 in James 
code to validate the compatibility with James.

You can find a JIRA ticket: https://issues.apache.org/jira/browse/JAMES-4142

And the PR attempt: https://github.com/apache/james-project/pull/2780

Latest build was green.

Minimal changes honestly, except one rather odd. We use actually 
compression options on the following 4 tables:

- blob_cache
- mailbox
- imapUidTable
- message_fast_view_projection

Problem is: there is a hard breaking change in Cassandra 5.0 where a 
compression option changes name from `check_length_kb` to 
`check_length_in_kb`.

The java driver for cassandra of course can't deal with this at the moment.

A fix was made and should be part of the next release of the java 
driver: https://github.com/apache/cassandra-java-driver/pull/2029

But... it introduces different methods to manage retro compatibility 
(which isn't great).

 From there we are thinking:

- introducing an option in the configuration to determine if Cassandra 4 
or 5 and then select the proper method when we get the new driver 
released (which I'm unsure when will that happen)
- dropping the compression, thinking it's not a big deal and documenting 
how to add manually those compressions to the tables on cassandra via 
cqlsh commands.

We think the second option is the simplest and probably better here, 
this is the way the PR has taken by the way. But it deserves a wider 
discussion with the community in general (thus the thread).

Note as well that existing setups will be migrated without issues for 
those compression options when upgrading the cluster from cassandra 4 to 
5. This is just an issue for new setups.

What do people think?

Thank you all and wishing you a good summer holiday as well!

Rene.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.