Open imjalpreet opened 1 month ago
Some things we need to consider
Presto on Spark: Spark versions 3.3+ support Java 17.
AWS SDK 1.x: If we want to upgrade till Java 17 we can keep using AWS SDK 1.x. But for later Java versions, we need to transition to AWS SDK 2.x which has been a long pending task. (https://github.com/aws/aws-sdk-java?tab=readme-ov-file#maintenance-and-support-for-java-versions). AWS SDK 1.x is already in maintenance mode and is reaching end-of-support in Dec'25.
tempto (https://github.com/prestodb/tempto): We use tempto to run presto product tests in the CI pipelines. This hasn't been maintained for the last few years, so we would need to upgrade it to Java 17+ and also look at enhancing it to be able to run the product tests on multiple java versions during the transition period.
Background
As of today, Presto primarily supports Java 8/11 in most production environments. However, with Java 17/Java 21 being a Long-Term Support (LTS) release, it’s becoming increasingly important to evaluate and potentially upgrade Presto’s Java version to take advantage of the modern JVM features, performance improvements, and security enhancements that Java 17 offers.
Many organizations are planning their migrations to Java 17+ or have already made the switch, which raises the need for Presto to remain compatible with these newer Java versions.
Motivation
The upgrade from Java 8 to Java 17/Java 21 would bring several benefits to Presto, including but not limited to:
Challenges
sun.misc.Unsafe
) will need to be refactored or use the--add-exports
or--add-opens
JVM options to bypass module restrictions (though not recommended for the long term).Proposal
This issue aims to start a discussion on upgrading Presto’s JVM support from Java 8 to Java 17+, with the following proposed steps:
Next Steps
We would like to hear the community’s thoughts and suggestions on:
Looking forward to feedback and thoughts from the community!