apache / pinot

Apache Pinot - A realtime distributed OLAP datastore
https://pinot.apache.org/
Apache License 2.0
5.53k stars 1.29k forks source link

sum-up: things older java versions are blocking #14325

Open hpvd opened 3 weeks ago

hpvd commented 3 weeks ago

To get an overview which things we are missing with staying using/being compatible to older Java versions, and determine the right point of time when its maybe worth to drop one or find a way to work around it, I like to start this list.

needs java 21 (LTS):

issue to upgrade lucene to v10.x https://github.com/apache/pinot/issues/14354

needs java 22:

Please add your knowledge/findings to the comments so we can update this list. Maybe we can also highlighting some details why supporting it may be worth it (beside always happening bug and security fixes)

gortiz commented 3 weeks ago

You can add https://github.com/apache/pinot/issues/12809 (although it requires Java 22).

IMHO the target should not be to drop Java < 21 support but start using multi-release jars to be able to provide features that are only available in specific runtimes.

gortiz commented 3 weeks ago

Also notice that it may be acceptable to increase the minimum Java runtime version for Pinot processes (servers, brokers, controllers and minions), but increasing the minimum version of the Pinot driver is more sensible.

The Pinot driver build process is pretty coupled with Pinot processes. Due to the way the driver is being built, it depends on some core projects of Pinot processes. We in fact compile these modules twice: Once with Java 11 and one with Java 8. Given that these two Java versions are very close in terms of syntax there is usually no problem. If we end up moving the services code to Java 21 that won't be the case.

So any plan to migrate Pinot services to a newer version would need to analyze the impact in the driver. Probably we would need to split the driver code from the services code or, in a more ambitious way, try to implement a third party protocol (mysql or postgres) and use their drivers.