Optimizing OpenJ9’s Balanced GC Policy for Throughput with Dynamic Breadth First (DBF) Scan Ordering

Optimizing application throughput continues to be a primary goal for any application developer seeking improved application performance. Before I can talk about the details of DBF scan ordering, there are some terms and concepts that must be discussed first. To understand DBF scan ordering, a base knowledge of Garbage Collection (GC), OpenJ9 GC policies, and…

OpenJ9 Debug Images

Most OpenJ9 platforms create debug images as part of the build, automatically on jenkins or when running make all. These are overlays to the JDK which add additional debug information for native debuggers, such as gdb or windbg, to help developers diagnose problems. Looking at a build for the xLinux platform in Jenkins, you can…

OpenJ9 JCL Preprocessor (JPP) is extended to the extensions for OpenJDK

OpenJ9 has been using the JPP to produce a custom set of libraries from a single JCL codebase since its inception. The customized libraries are used to build OpenJ9 JDKs. Initially, only the OpenJ9 JCL codebase is structured to support various JPP configurations. Recently the JPP is extended to preprocess some of the JCL code…

Serverless Deployment with OpenJ9 CRIU Support

Overview A previous blog post described how to deploy unprivileged containers that restore an application that checkpointed itself using OpenJ9 CRIU Support on Kubernetes. This post goes over how to build a simple Spring Boot Application, how to configure the application to use OpenJ9 CRIU Support to checkpoint itself, and how to use Knative Serving…

OpenJ9 CRIU Support: A look under the hood (part II)

Introduction In this blog post, we continue to look under the hood of OpenJ9’s CRIU support by examining some ways in which a Java application and the JVM can cooperate to ensure a successful restore with expected behavior. This is a continuation of OpenJ9 CRIU Support: A look under the hood where we started to…