General recommendations for JDK Version on Trino Servers

A while back, we got this question in on the Trino Community Broadcast:

Why is Java 11 needed in the newer version of Trino and how do I get the older version of Trino as I need the 328 latest on Java 8 as Java 11 isn’t available to use?

During that show and in the show notes, we pointed out that is you’re only required to use JDK11 for the server. The client can be on JDK8. This is often a confusion that many users have and it should first be made this distinction.

It is recommended to run the Trino server process on it’s on nodes without any other services running on it. Running other services other than Trino will likely degrade the performance of your cluster and could cause other issues if Trino is fighting for resources. Users that have suggested that they need to keep JDK8 running on their Trino servers because they have other processes depending on that version should move the other services to a different node if possible.

Another possibility is that there is a company policy requiring specific JDKs be installed on all servers. You can have side-by-side installs of multiple versions of the JDK and use the appropriate one. You just need to launch Trino with the correct java command. If your company is against using a newer JDK, you can point out the arguments above to update the policy to at least include JDK11 mentioned in the broadcast notes.

In summary, although it is possible to run older versions of Trino to enable running on Java 8, we recommend that you don’t. The version required to do that not only has security flaws but is missing a lot of performance enhancements. Please use the recommended version of the JDK.

Just an update - Java 17 is required at the moment and we are moving towards Java 21. Always ensure to use the supported version as referenced in the documentation.

https://trino.io/docs/current/installation/deployment.html#java-runtime-environment