DDR Support for Virtual Threads in JDK 21
Eclipse OpenJ9 Blog
by gengchentuo
9M ago
DDR (Direct Dump Reader) is a Java implementation of the DTFJ (Diagnostic Tooling Framework for Java) API. It works by walking the J9 structures inside a dump to extract the VM and application state. It’s useful for inspecting Java objects at a certain point of execution of a program. For example, you can list all the threads and inspect the stack trace of a thread. In Java 19, the Virtual Thread was introduced by Project Loom. A virtual thread is a lightweight implementation of java.lang.Thread which allows people to write highly concurrent applications. In contrast to a platform thread, a vi ..read more
Visit website
Deploying on OCP 4.13 With OpenJ9 CRIU Support
Eclipse OpenJ9 Blog
by Irwin
1y ago
The Deploying on Kubernetes and OpenShift with OpenJ9 CRIU Support blog post (which is now out of date) showed how to deploy on OpenShift Container Platform (OCP) using OpenJ9 CRIU Support. Since that time however, OCP has released Version 4.13 which uses Red Hat CoreOS (RHCOS) 4.13, which is based on RHEL 9. This means that the kernel now has the clone3() system call, obviating the need to mount /proc/sys/kernel/ns_last_pid as a volume. Additionally, IBM now provides IBM Semeru container images with the OpenJ9 CRIU Support feature. Finally, the OpenJ9 CRIU Support feature has been improved to ..read more
Visit website
Optimizing OpenJ9’s Balanced GC Policy for Throughput with Dynamic Breadth First (DBF) Scan Ordering
Eclipse OpenJ9 Blog
by jonoommen
1y ago
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 the OpenJ9 Testarossa Just-In-Time (JIT) compiler are required. Let’s begin by briefly discussing at a high level each of these concepts mentioned above. Firstly, GC is a form of automatic memory management. The garbage collector attempts ..read more
Visit website
OpenJ9 Debug Images
Eclipse OpenJ9 Blog
by pshipton
1y ago
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 see two download links besides the JDK build itself. The test-images, which provides native test libraries required to run some testing, and the debug-image. When building using make all look for the images/debug-image directory. For Semeru releases, the debug-image fi ..read more
Visit website
OpenJ9 JCL Preprocessor (JPP) is extended to the extensions for OpenJDK
Eclipse OpenJ9 Blog
by jasonfengj9
1y ago
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 in the extensions for OpenJDK. For the relation between OpenJ9 and the extensions, refer to What is Eclipse OpenJ9? This blog first gives a short overview of JPP usage, then shows how it is extended to the extensions. JPP expressions There are a set of JPP expressions tha ..read more
Visit website
Serverless Deployment with OpenJ9 CRIU Support
Eclipse OpenJ9 Blog
by Irwin
1y ago
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 to create a serverless deployment. This post also goes over how the application with OpenJ9 CRIU Support performs compared to a traditional JVM as well as when compiled natively using GraalVM Native Image in a serverless deployment. Table of Conten ..read more
Visit website
OpenJ9 CRIU Support: A look under the hood (part II)
Eclipse OpenJ9 Blog
by vijaysun1
1y ago
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 get into the implementation details of OpenJ9’s CRIU support. Here, we discuss the Hook method architecture/API that we introduced as part of the CRIU support as well as several compensations that we needed to add to class library methods in order to preserve expected behaviors for Java ..read more
Visit website
OpenJ9 CRIU Support: A look under the hood 
Eclipse OpenJ9 Blog
by vijaysun1
1y ago
A recent blog post on OpenJ9 CRIU support introduced the motivations and concept of this new feature. In this blog post, we delve deeper into the support built for this feature in the OpenJ9 JVM and JCL (Java Class Library) components.   You may be wondering what the difference is between checkpointing a container running a Java application using CRIU directly and the behavior one gets when using the OpenJ9 CRIU support. The biggest difference is that OpenJ9 CRIU support allows the application and the JVM to cooperate in increasing the likelihood of a successful restore without unexp ..read more
Visit website
Deploying on Kubernetes and OpenShift with OpenJ9 CRIU Support
Eclipse OpenJ9 Blog
by Irwin
1y ago
The previous blog post showed how to restore an application that checkpointed itself using OpenJ9 CRIU Support in an unprivileged container. This blog post will go over how deploy these containers in Kubernetes (K8s) and OpenShift Container Platform (OCP). Prerequisites A kernel that supports the CAP_CHECKPOINT_RESTORE Linux capability. This capability was introduced in kernel version 5.9 but has been backported to RHEL kernel versions used in RHEL 8.6. CRI-O configured to use crun or runc. If using runc, the version needs to be 1.1.3 or higher to have the recent fix which enables mounting /p ..read more
Visit website
Unprivileged OpenJ9 CRIU Support
Eclipse OpenJ9 Blog
by Irwin
1y ago
Overview The previous blog introduced using OpenJ9 CRIU Support. However, the application had to be run with elevated privileges. This blog outlines how to use OpenJ9 CRIU Support with minimal privileges. We have tested running a UBI8 container on RHEL 8.6 and a Ubuntu 22.04 container on Ubuntu 22.04 with the latest kernel updates (this is important since there was an issue fixed in the latest updates that was preventing successful restore); YMMV on other OSs. Prerequisites A kernel that supports the CAP_CHECKPOINT_RESTORE Linux capability. This capability was introduced in kernel version 5.9 ..read more
Visit website

Follow Eclipse OpenJ9 Blog on FeedSpot

Continue with Google
Continue with Apple
OR