Open hpvd opened 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.
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.
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)