Visit Azul.com Support

Optimizer Hub Release Notes

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

Optimizer Hub 1.10.0

Release Date: - Release Notes PDF

New Features

  • Azul Zing Builds of OpenJDK, version 24.08 introduced the new -XX:ProfileName=<name> option that allows a JVM instance to specify a profile name to Optimizer Hub. This name allows multiple JVM instances that use the same profile name to share the Optimizer Hub functionality, such as the use of ReadyNow Orchestrator profiles and Cloud Native Compiler caching.

    This new feature also introduces the new command line option -XX:+EnableRNO that enables ReadyNow read and writes in the JVMs against ReadyNow Orchestrator, using ProfileName as the name for the profile log. More info is provided in Using ReadyNow Orchestrator > ReadyNow Orchestrator JVM Options.

    The previously used options (OptHubHost and ProfileLogName) is still supported to existing configurations don’t break. But we advise to use the new settings with OptHubHost, EnableRNO, and ProfileName.

  • The database storage for Code Cache is deprecated because blob storage is the best production-friendly option as it is more scalable, highly available, and durable. At the same time, blob storage is simpler to maintain.

    See Optional Database Pod Configuration if you want to keep using the database.

  • Avoid cleanup of profiles from systems with low restarts by using the last time the JVM requesting that profile was seen alive, rather than the last time the profile was requested.

Bug Fixes

  • Improved time-outs for Profile Sync Task. In some configurations with cross-region syncing, the sync task could get stuck because of incorrect configurations. This has been fixed with improved time-outs.

  • Cross-region syncing of ReadyNow Orchestrator profiles is improved to let new instances check if a later promoted generation becomes available.

  • Improved the handling of unloaded or unknown classes.

Known Issues

  • A large amount of stored data may require a significant grace period after a restart of Optimizer Hub to avoid issues with profile download.

Optimizer Hub 1.9.5

Release Date: November 5, 2024 - Release Notes PDF

New Features

  • Includes bug fixes for Optimizer Hub 1.9.4.

  • Faster down-scaling to release resources that are no longer needed.

Default Configuration Changes

  • The stabilization window in the scaling configuration changed from 1 to 2 minutes.

  • On the first connection to Optimizer Hub, each JVM was getting a certain about of compile-broker capacity allocated. This could cause a high number of compile-brokers when many JVMs connect but don’t have enough compilations. This feature is now disabled by default.

Optimizer Hub 1.9.4

Release Date: September 16, 2024 - Release Notes PDF

New Features

  • Includes bug fixes for Optimizer Hub 1.9.3.

  • When using Optimizer Hub with AWS, you can now use an K8S ServiceAccount for S3 permissions. For more info, check out the documentation at Using AWS Service Accounts.

  • Profile download errors, caused by any reason, are now reflected in metrics and visible in the Grafana dashboard.

Bug Fixes

  • Improved stability of the readiness probes for the Optimizer Hub Components.

  • The limit of incoming connections for single instances of the gateway (Envoy proxy) is increased from 1024 to 3072.

  • You can now configure the AWS region of S3 with the Helm value storage.s3.region.

  • Implemented stricter data consistency validation during the upload of RNO profiles to prevent BlobNotFound errors later.

Known Issue

  • Old Prime JVMs (pre-23.08), using an earlier protocol version, can send profile chunks in an incorrect order. This can lead to some chunks getting lost, e.g., due to reconnections.

  • With newer Prime JVMs, using the latest protocol, this same issue has been noticed very rarely, and research is ongoing.

Optimizer Hub 1.9.3

Release Date: August 12, 2024 - Release Notes PDF

New Features

  • Includes bug fixes for Optimizer Hub 1.9.2.

  • Because of configuration changes, --set version is no longer supported during installation using Helm.

  • You can now also specify Service labels, as described in the Kubernetes installation instructions

Grafana Dashboard Update

A new version of the Grafana dashboard is included in opthub-install.zip

Bug Fixes

  • Improved cleanup policy for profiles written with continueRecordingOnPromotion to avoid profiles to grow too much.

  • Fixed a bug where MariaDB deployed with an empty password, potentially allowing unauthorized root connections. MariaDB is now deployed with a randomly set password.

Known Issue

  • In some configurations with cross-region syncing, the sync task can get stuck because of incorrect configurations.

Optimizer Hub 1.9.2

Release Date: April 30, 2024 - Release Notes PDF

New Features

API improvements

The API endpoint /rno/names is extended with:

  • Extra flag cncEnabled in the returned result, indicating that the creator of a profile used or didn’t use CNC.

  • Optional request filter to define a date range.

See Overview of the API Methods for more info.

Grafana Dashboard Update

A new version of the Grafana dashboard is included in opthub-install.zip

Known Issue

Profile Sync Running Indefinitely

The profile synchronization task may hang indefinitely if it is erroneously configured with an gRPC endpoint URL, instead of an HTTP endpoint URL in synchronization.peers. Please review your configuration in case you encounter such a hang.

Optimizer Hub 1.9.1

Release Date: April 12, 2024 - Release Notes PDF

New Features

Grafana Dashboard Update

A new version of the Grafana dashboard is included in opthub-install.zip

Configurable Minimal Client Version

Optimizer Hub can now be configured to only allow clients with a specific minimal version of Azul Zing Builds of OpenJDK to connect to and use Optimizer Hub. By default, all versions are allowed. To limit, for example, to 24.02.1+, add the following setting to your values-override.yaml:

 
compilations: minVmVersionForCNCCompilation: "24.2.1.0"

Increased Number of Concurrent Recordings

The default value of readyNowOrchestrator.producers.maxConcurrentRecordings has been increased from 5 to 10, ensuring that enough long-lived producers are detected over short-lived ones.

Continuous Recording

With the new flag readyNowOrchestrator.producers.continueRecordingOnPromotion, you can define if profiles must still be recorded after the maxGeneration has been reached. You can use this flag for debugging purposes. See ReadyNow Orchestrator Defaults for more info.

Optimizer Hub 1.9.0

Release Date: February 1, 2024 - Release Notes PDF

New Features

Cross-Region Synchronization of ReadyNow Orchestrator Profiles

A new feature in ReadyNow Orchestrator allows you to synchronize profile names between Optimizer Hub instances in different regions so that each instance contains at least one promoted profile for each profile name.

See Optimizer Hub Generic Defaults > Cross-Region Sync for configuration options.

Database Changes

Optimizer Hub 1.9 includes an update to the Code Cache database schema. After upgrading, Optimizer Hub dumps old Code Cache data and recreates it the next time you run your application.

New Location of REST APIs and ReadyNow Profile Cleaner

The REST APIs and ReadyNow Profile Cleaner moved to the new Management Gateway component, and the APIs are now exposed on a different address. The Management Gateway is disabled by default, see Management Gateway Parameters as this component is not required in all use-cases.

Prioritization of Profile Generations

ReadyNow Orchestrator allows you to set different minimum size and recording durations for different generations of your profiles. Often you want to promote the first generation of your profile as quickly as possible so new JVMs are not starting with nothing, but you want your second generation to record for a longer time before promotion, so it is more complete.

New configuration settings: minProfileSize, minProfileDuration, minProfileSizePerGeneration, and minProfileDurationPerGeneration. Check ReadyNow Orchestrator Defaults for more info.

Grafana Dashboard

The Grafana Dashboard has been updated with more information for greater visibility into Optimizer Hub performance.

Support for Zing Running on ARM

Optimizer Hub now supports connections from Zing JVMs running on both x86 and ARM 64-bit machines. Optimizer Hub itself still needs to run on x86 only.

Bug Fixes

The message "Error occurred while executing task for trigger IntervalTrigger" may be seen during initialization. This resolves automatically after some time and works as expected.

Optimizer Hub 1.8.2

Release Date: December 19, 2023 - Release Notes PDF

New Features

  • Fixes an issue in 1.8.1 where the cache component is not able to scale up.

  • Fixes an issue that caused unexpected HTTP/1.x requests for GET /q/metrics to be reported in the logging.

Optimizer Hub 1.8.1

Release Date: December 6, 2023 - Release Notes PDF

New Features

Includes bug fixes for Optimizer Hub 1.8.0.

Known Issues

The message "Error occurred while executing task for trigger IntervalTrigger" may be seen during initialization. This resolves automatically after some time and work as expected.

Optimizer Hub 1.8.0

Release Date: September 12, 2023 - Release Notes PDF

As Cloud Native Compiler expands its scope to offer more functionality than just offloading compilations, it is time to rebrand the offering to better reflect what it does. Starting with release 1.8, we are using the following naming:

  • Optimizer Hub (was Cloud Native Compiler) - The name of the overall component that you install on your Kubernetes cluster.

    • Cloud Native Compiler (was Compiler Service) - The feature that performs the compilation on Optimizer Hub.

    • ReadyNow Orchestrator (was Profile Log Service) - The feature that records and serves ReadyNow profiles to JVMs.

In Optimizer Hub 1.8, all major artifacts and command line switches use the updated branding. This includes, but is not limited to:

If you are using release 1.7 and earlier, all of the previous spellings of artifacts still work. Additionally, all of the pre-1.8 command-line arguments continue to work for a period of one year from the release of 1.8.

New Features

  • Monitoring with Prometheus and Grafana is no longer included in the Optimizer Hub Helm charts, but must be configured separately as described on Monitoring Optimizer Hub.

  • In the past, each release was bundled with the most likely JVM compiler engine. This is no longer the cause, resulting in smaller images.

  • Session rebalancing has been improved with an (optional) Envoy proxy, or any other gRPC-aware load balancer/ingress in your Kubernetes cluster. More information can be found on Configuring gRPC Proxy.

  • Documentation has been extended with installation instructions for Google Cloud.

Known Issues

Fixed Ports for gRPC

The helm chart values contain the keys gateway.service.httpEndpoint.port and gateway.service.grpc.port to change the default ports 50051 and 8080. But these values are hardcoded for the gRPC Envoy proxy, at this moment, and cannot be changed with the mentioned helm chart keys.

Cloud Native Compiler 1.7.1

Release Date: June 30, 2023

New Features

  • Profile Log Service now stores profile metadata in the blob storage. This means that you can use AWS S3 or Azure Blob Storage to persist profile metadata and no longer need to back up the database pod with persistent storage. This change also means that when you upgrade from any release prior to 1.7.1 your previously collected profiles are no longer available.

  • Profile Log service automatically cleans-up unused profile names when not requested for a defined time. You can configure the duration with profileLogService.cleaner.keepUnrequestedProfileNamesFor. See Configuring ReadyNow Orchestrator for more configuration information.

  • New version of the Grafana monitoring dashboard with additional charts, and updates related to changes in the metrics reported by CNC components.

  • You can define the profile log name with a Java property specified in the command line, in the format %prop={PROPERTY}%. For more info, see "Using the Profile Log Service > Substitution Macros".

  • Improved setup for Profile Log Service-only deployment.

  • CNC can automatically recover from DB pod restarts with loss of schema. To enable this feature, set the following value in values-override.yaml:

     
    dbschema.auto-recreate.enabled=true
  • The hostPort attribute is no longer required and included for the storage pod.

Cloud Native Compiler 1.7.0

Release Date: May 3, 2023

New Features

Cloud Native Compiler 1.6.3

Release Date: May 24, 2023

New Feature

Fix to prevent the storage pod from crashing with persistent volume enabled on CNC 1.6.2.

Cloud Native Compiler 1.6.2

Release Date: April 27, 2023

New Features

  • The CNC helm charts now use full names for the Docker images to prevent issues in environments where a Docker Hub mirror is used.

  • CNC pods can now be run as non-root user. The Docker images have a non-root user and the Helm chart is instructing Kubernetes to use this non-root user for CNC pods.

Upgrade

Follow the steps described on "Upgrading Cloud Native Compiler".

Cloud Native Compiler 1.6.1

Release Date: March 1, 2023

New Features

  • To avoid restarts of the Gateway pod when a large number of clients try to write profile logs at the same time, a default limit has been configured.

  • Upgrade from version 1.6.0 can be done with a helm upgrade, as described on Upgrading Cloud Native Compiler.

Bug Fixes

  • Gateway pod gets restarted when large number of clients try to write profile simultaneously.

Known Issues

  • JVMs released before CNC 1.6.1 use HTTP for uploads of the compiler engine. Since version 1.6.1, gRPC is used and the HTTP port is disabled by default in values.yaml. Because of this, these JVMs are not able to upload their appropriate compiler engine to CNC.

    When a CNC version prior to 1.6.1 already has been used and upgraded, the older JVMs keep working with CNC, because the upload is not needed anymore.

  • The first attempt to download a previously existing profile, after CNC upgrade to 1.6.1 can fail with a timeout.

Cloud Native Compiler 1.6.0

Release Date: January 30, 2023

New Features

  • Cloud Native Compiler has a new Profile Log Service. This service allows you to read and write ReadyNow profile logs to Cloud Native Compiler. This simplifies getting profile logs in and out of containers and other environments without persistent storage. For more information on Profile Log Service configuration, see "Using the Profile Log Service".

  • Introduced ReadyNow-only deployment to helm charts.

Bug Fixes

  • Multiple APIs failed with empty response.

  • Cache requests latency increased manifold resulting in an increase in wait time and overall compilation duration.

Known Issues

Cloud Native Compiler 1.5.0

Release Date: October 31, 2022

New Features

  • Compiler Cache on by default.

  • New Time to Clear Optimization Backlog metric in Grafana dashboard.

Known Issues

  • Multiple pods can get evicted because of low ephemeral storage in a long-running Code Cache cluster.

Cloud Native Compiler 1.4.0

Release Date: July 8, 2022

New Features

  • Early access of the Compiler Cache. The Compiler Cache stores previously performed optimizations and serves them from the cache rather than recompiling whenever possible. Running your workloads with a Compiler Cache leads to lower CNC CPU usage and faster warmup time.

Known Issues

  • Compiler Cache is not scalable and too many connections overload the database.

  • Multiple pods can get evicted because of low ephemeral storage in a long-running Code Cache cluster.

Cloud Native Compiler 1.3.0

Release Date: May 9, 2022

New Features

  • Simplified installation and configuration with Helm charts.

Known Issues

  • ZVM-23070 - Using Cloud Native Compiler with local ReadyNow can dramatically increase the CPU required to deliver the compilations in time. Monitor your compiler output and look for connections being rejected and the JVM switching to local compilation, and scale out your CNC instance accordingly.

Cloud Native Compiler 1.2.0

Release Date: February 24, 2021

New Features

  • Fallback to local JIT compilation when Cloud Native Compiler is unreachable or underperforming.

  • You can now provide an existing ReadyNow profile as the input of the -XX:ProfileLogIn={file} flag. Note that generating a ReadyNow profile using the -XX:ProfileLogOut={file} is not supported with Cloud Native Compiler yet.

Cloud Native Compiler 1.1.0

Release Date: December 20, 2021

New Features

  • Built-in monitoring stack with Prometheus and Grafana.

  • JDK 17 support.

Known Issues

  • The CNC gateway is currently configured with one instance. Do not attempt to increase the number of gateway instances.

  • Extremely slow disk I/o configurations (with latencies in the multiple seconds) can lead to internal crashes and data loss within CNC (due to Artemis crashes). Avoid configuring CNC with pods using very slow HDD or network volumes.

Cloud Native Compiler 1.0.0

Release Date: October 15, 2021

This is the first release of Cloud Connected Compiler (CNC), and we are really excited about it!

New Features

  • Cloud Native Compiler server able to provide JIT compilations to Azul Zing Builds of OpenJDK 12.09.1.0 and later.

  • Configuration files to provision an AWS Elastic Kubernetes Service cluster for your CNC server.

  • A sample Grafana dashboard for monitoring your CNC server.