Liberica Alpaquita Containers Now Come With CRaC
Written by Nikos Vaggalis   
Tuesday, 23 April 2024

Bellsoft has added CRaC support to its ready-to-use Alpaquita container images. This will enable developers to seamlessly integrate CRaC into their projects for performant Java in the Cloud.

Is CRaC the magic recipe to Java's warm up problems?

The JVM is notorious for its hefty requirements in startup and warmup times. The main reason for the slow startup is that it takes much time to load, link, and initialize classes. Of course we are talking micro-seconds here but the delay can make a difference when trying to spin VMs on the Cloud and run Microservices. There are ideas for speeding things up and CRaC is one of them.

CRaC stands for Coordinated Restore at Checkpoint. It is an API that helps to coordinate the JDK and an application's resources under a checkpoint/restore mechanism.
It allows applications to, for instance, close open files, dump their cache, and snapshot the required state for them to come alive when restored back. As such the primary aim of the project is to offer a standard mechanism-agnostic API to notify Java programs about the checkpoint and restore events.


 

Bellsoft has recently introduced CRaC into its Liberica OpeJDK builds for both Java version 17 and 21, hence developers could use it to make snapshots of their Java application at runtime in order to reduce startup times to mere milliseconds. So it was only logical that Bellsoft would also release its Alpaquita containers with CRaC support too. And the benchmarks are promising, containers with CRaC provided up to 164x faster startup and 1.1x smaller images in testing with the Petclinic app.

In terms of startup time, the tests yielded the reduction of startup (i.e. time to first operation) from 4935 ms to 30 ms. In terms of size, the size of the generated CRaC image was reduced from 613 MB to 190 MB right after restore. When the application started processing requests, the image size grew to 381 MB after 10, 000 requests but the image size didn’t change afterwards. So the general reduction by 1.1x times is still tangible.

The extra boon is that because Liberica's JDK build is the default runtime for Spring it means that Spring Boot projects can take advantage of the great performance gains immediately. Other projects with CRaC support already are Micronaut and Quarkus while there's a modification of Tomcat that enables CRaC for Spring Boot applications.

As such the Alpaquita containers free up developers to use CRaC in their projects without having to additionally adjust Java or the OS. The containers are available for JDK 17 and 21 and x86_64 architecture, with ARM support coming later in 2024.

alpaquita

More Information

 Alpaquita Containers

Related Articles

Liberica Joins The Java CRaC Train

Making GraalVM-Based Executables Easy

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Rust's Rapid Rise on TIOBE Index
10/07/2024

Rust is making spectacular progress up the TIOBE index and JavaScript is also on the up and experiencing a personal best. Kotlin is maintaining its inclusion in the top 20 and the gap at the very top  [ ... ]



Amazon Announces Updates To Bedrock and MemoryDB
23/07/2024

Amazon Bedrock and MemoryDB have been improved according to announcements made at Amazon's recent AWS Summit in New York.


More News

kotlin book

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Tuesday, 23 April 2024 )