Java 13 is still a week away from its September 17 arrival, but work has already begun on its successor, Java 14. A JDK Enhancement Proposal (JEP) for Java Development Kit 14, posted in openjdk.java.net, would upgrade Java’s mapped byte buffers to support non-volatile memory.
If JDK 14 follows the six-month release cadence set for Java, the upgrade would arrive as a production release in March 2020. As a non-LTS (long term support) release, JDK 14 would be supported for six months before making way for a successor release.
Non-volatile mapped byte buffers is the lone proposed feature targeting JDK 14 as of September 9. Non-volatile mapped byte buffers would add new JDK-specific file mapping modes that allow the
FileChannel API to be used to create
MappedByteBuffer instances that refer to non-volatile memory (NVM).
NVM enables programmers to build and update program state across program runs without incurring the significant copying or translation costs that input and output operations usually require. This is particularly significant for transactional programs. Thus the chief goal of this JDK Enhancement Proposal is to ensure that clients can access and update NVM from a Java program coherently and efficiently.
A secondary goal is to implement this commit behavior using a restricted, JDK-internal API defined in class
Unsafe, so it can be re-used by classes other than
MappedByteBuffer that may need to commit to NVM. Another goal is to allow buffers mapped over NVM to be tracked by existing APIs for monitoring and management. Target OS/CPU platforms include Linux/x64 and Linux/AArch64.