The good folks over at Oracle have been working on a low-latency Java Garbage Collector designed to handle large heaps and it is up to users to vote on whether the tech reaches the open source community. Submissions for votes be taken until November 8th this year.
The project is called the Z Garbage Collector (ZGC) and represents a fantastic opportunity for users. Here’s what ZGC can bring to the table:
- support for multiterabyte heaps
- maximum pause times of 10 milliseconds
- 15% maximum application reduction throughput compared to the G1 garbage collector
- Concurrent operations while running application threads
With all this going for the project you could be forgiven for thinking it strange that Oracle has decided to impose a voting process to ensure the developments reach users. However, there is a sound logic to it.
Per Liden, a member of the HotSpot virtual machine team at Oracle, has suggested that most workloads do not have the above targets as essential criteria. He has offered to lead a ZGC project with HotSpot as a sponsor.
ZGC uses colored object pointers with information required by load barriers to decide whether action is necessary before allowing a Java thread to utilise the pointer. According to Liden, coloured pointers allow reclaiming and reuse of memory throughout the relocation and compaction phase to reduce the general heap overhead.
ZGC has already been used for projects, as Per Liden points out:
“Some of the work coming out of the ZGC project has already been seen, either in the form of general improvements, or because a feature has found use cases outside of ZGC, such as:
- Atomics re-write
- GC Barrier API
- Thread local handshakes”
Red Hat’s Shenandoah Java Garbage Collection project is ZGC’s obvious rival and is already some way ahead of ZGC. It has already been earmarked for large-heap applications.
ZGC is an exciting development for Java developers and it will be interesting to see how users from the open-source community vote on this.