You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Kornel Pal <ko...@gmail.com> on 2021/05/23 18:45:08 UTC

Enable running Cassandra 3.11 on Java 11

Hi,

As an experiment, I tried to backport part of CASSANDRA-9608 and CASSANDRA-14607 that are needed to run Cassandra 3.11 on Java 11. For the most part it was quite straightforward; the results are available at https://github.com/apache/cassandra/compare/cassandra-3.11...kornelpal:cassandra-3.11-java11

To minimize the scope and risk, I only backported code changes needed to run on Java 11, not changes needed to compile on Java 11. I also did not update library versions and did not backport the script and config changes. Those might be higher risk, and Cassandra administrators should be able to manually replace library binaries and apply config changes from 4.0 for Java 11 support.

Both "ant test" and "ant long-test" had the same results with and without the changes on Java 8 that is very promising.

AtomicBTreePartition was somewhat challenging; CASSANDRA-14607 replaced all the relevant changes made in CASSANDRA-9608 and CASSANDRA-15367 has a 4.0 specific version. I changed CommitLogReader - that is not present in 4.0 - to use FileUtils.createTempFile for consistency. I did not apply the UFSecurityTest changes as those were failing, probably because are dependent on a newer library version.

I believe that these changes could enable Cassandra 3.11 to run on modern Java versions with reasonable effort and with no code changes, while also would bring the shared code base closer to 4.0 that would reduce the risk and complexity of future code changes on the 3.11 branch.

Could you please comment on whether this or a similar change could be accepted to the mainline Cassandra 3.11 source code.

Thank you,
Kornel

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org


Re: Enable running Cassandra 3.11 on Java 11

Posted by Mick Semb Wever <mc...@apache.org>.
Java 11 support in Cassandra 3.11 would be fantastic. Is this something the
> Cassandra project will follow-up or is this a dead-end in favor of
> Cassandra 4.0, although Java 11 is marked as "experimental" there. Not sure
> what this means for production usage. 😊
>


Hi Thomas,
 backporting to 3.11 probably won't be a task taken up by the community,
with all focus and effort currently on 4.0. That's not to say it can't
happen after 4.0.0.

Leaving Java 11 marked as "experimental" was discussed here:
https://lists.apache.org/thread.html/r38f6beaa22e247cb38212f476f5f79efdc6587f83af0397406c06d7c%40%3Cdev.cassandra.apache.org%3E


Java 11 is getting tested and equal treatment to Java 8, so this is more
just about using all available resources to first get 4.0 GA out.

I suspect it will move from experimental to supported in one of the early
4.0.x patch versions, once we get more feedback on its usage. Feedback from
users will help.

regards

RE: Enable running Cassandra 3.11 on Java 11

Posted by "Steinmaurer, Thomas" <th...@dynatrace.com.INVALID>.
Java 11 support in Cassandra 3.11 would be fantastic. Is this something the Cassandra project will follow-up or is this a dead-end in favor of Cassandra 4.0, although Java 11 is marked as "experimental" there. Not sure what this means for production usage. 😊

Thanks,
Thomas


-----Original Message-----
From: Kornel Pal <ko...@gmail.com>
Sent: Sonntag, 23. Mai 2021 20:45
To: dev@cassandra.apache.org
Subject: Enable running Cassandra 3.11 on Java 11

Hi,

As an experiment, I tried to backport part of CASSANDRA-9608 and CASSANDRA-14607 that are needed to run Cassandra 3.11 on Java 11. For the most part it was quite straightforward; the results are available at https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcassandra%2Fcompare%2Fcassandra-3.11...kornelpal%3Acassandra-3.11-java11&amp;data=04%7C01%7Cthomas.steinmaurer%40dynatrace.com%7C906d5dac19614ee93a2308d91e1ba1c5%7C70ebe3a35b30435d9d677716d74ca190%7C1%7C0%7C637573926313720862%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=mCCV2zkph7Wc36oX3HnDGvZ%2FlZI3%2BAVuEuEhasvA%2Bxg%3D&amp;reserved=0

To minimize the scope and risk, I only backported code changes needed to run on Java 11, not changes needed to compile on Java 11. I also did not update library versions and did not backport the script and config changes. Those might be higher risk, and Cassandra administrators should be able to manually replace library binaries and apply config changes from 4.0 for Java 11 support.

Both "ant test" and "ant long-test" had the same results with and without the changes on Java 8 that is very promising.

AtomicBTreePartition was somewhat challenging; CASSANDRA-14607 replaced all the relevant changes made in CASSANDRA-9608 and CASSANDRA-15367 has a 4.0 specific version. I changed CommitLogReader - that is not present in 4.0 - to use FileUtils.createTempFile for consistency. I did not apply the UFSecurityTest changes as those were failing, probably because are dependent on a newer library version.

I believe that these changes could enable Cassandra 3.11 to run on modern Java versions with reasonable effort and with no code changes, while also would bring the shared code base closer to 4.0 that would reduce the risk and complexity of future code changes on the 3.11 branch.

Could you please comment on whether this or a similar change could be accepted to the mainline Cassandra 3.11 source code.

Thank you,
Kornel

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cassandra.apache.org
For additional commands, e-mail: dev-help@cassandra.apache.org

This email may contain confidential information. If it appears this message was sent to you by mistake, please let us know of the error. In this case, we also ask that you do not further forward the content and delete it. Thank you for your cooperation and understanding. Dynatrace Austria GmbH (registration number FN 91482h) is a company registered in Linz whose registered office is at 4020 Linz, Austria, Am Fünfundzwanziger Turm 20.