Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
JDK 17 is the next Java LTS, coming out this September.
It brings a number of goodies. One of which is the production-ready ZGC (available since JDK15). (as well as the Shenandoah GC, available since JDK15)
After September 2021, there will be three Java LTS versions: Java 8, Java 11 and Java 17. Java 8 will still be the mainstream SDK in the foreseeable future, so I am not looking to take advantage of the new APIs that are only available in JDK17. This jira aims to support HBase on all three JDK LTS.
Porting HBase to JDK17 is not a big hurdle. HBase (master branch) builds successfully on JDK17. A few tests fail mostly due to the new (more strict) Java module isolation enforcement. I have a small PoC that I will post here in the coming days.
What I am trying to achieve is to add an experimental support for JDK17. It will be interesting to benchmark HBase on ZGC and Shenandoah and determine if we should set our default GC to them. By then, we'll be able to claim production-ready support.
Attachments
Issue Links
- is depended upon by
-
PHOENIX-6748 Add support for Java 17
- Resolved
- is related to
-
HBASE-26392 Update ClassSize.BYTE_BUFFER for JDK17
- Resolved
-
HBASE-27179 Issues building with OpenJDK 17
- Resolved
-
HBASE-28787 Support JDK17 for hbase-operator-tools
- Open
-
HBASE-28788 Support JDK17 for hbase-connectors
- Open
- relates to
-
HBASE-28261 Sync jvm11 module flags from hbase-surefire.jdk11.flags to bin/hbase
- Resolved
-
HBASE-28380 Build hbase-thirdparty with JDK17
- Open