Optimizer Hub Release Notes
- Optimizer Hub 1.10.0
- Optimizer Hub 1.9.5
- Optimizer Hub 1.9.4
- Optimizer Hub 1.9.3
- Optimizer Hub 1.9.2
- Optimizer Hub 1.9.1
- Optimizer Hub 1.9.0
- Optimizer Hub 1.8.2
- Optimizer Hub 1.8.1
- Optimizer Hub 1.8.0
- Cloud Native Compiler 1.7.1
- Cloud Native Compiler 1.7.0
- Cloud Native Compiler 1.6.3
- Cloud Native Compiler 1.6.2
- Cloud Native Compiler 1.6.1
- Cloud Native Compiler 1.6.0
- Cloud Native Compiler 1.5.0
- Cloud Native Compiler 1.4.0
- Cloud Native Compiler 1.3.0
- Cloud Native Compiler 1.2.0
- Cloud Native Compiler 1.1.0
- Cloud Native Compiler 1.0.0
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, usingProfileName
as the name for the profile log. More info is provided in Using ReadyNow Orchestrator > ReadyNow Orchestrator JVM Options.The previously used options (
OptHubHost
andProfileLogName
) is still supported to existing configurations don’t break. But we advise to use the new settings withOptHubHost
,EnableRNO
, andProfileName
.
-
Native support for Google Cloud Platform Blob Storage is added. See Installing Optimizer Hub on Google Cloud.
-
MinIO has been removed from the helm chart as it is mainly intended for testing and demos. For production, cloud-managed blob storage is recommended (AWS S3, Azure Blob Storage, GCP Blob Storage, or S3-compatible (e.g. for Alibaba)).
See Installing Optimizer Hub on Kubernetes > Configure blob storage for more info.
-
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.
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
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
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.
Optimizer Hub 1.8.2
Release Date: December 19, 2023 - Release Notes PDF
Optimizer Hub 1.8.1
Release Date: December 6, 2023 - Release Notes PDF
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:
-
Command-line JVM options to configure Cloud Native Compiler and ReadyNow Orchestrator.
-
Helm repository locations, names, and parameter names: github.com/AzulSystems/opthub-helm-charts.
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.
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.
-
Because of this change, the db component (MariaDB) is no longer needed when running CNC in Profile Log Service-only mode.
-
-
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
-
Improved performance of autoscaling for the Compiler Service.
-
Usability improvements to the Profile Log Service Admin REST API.
-
Native blob storage on Azure and AWS. Extra documentation is provided on:
-
Added documentation of the CNC API.
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
-
In case of heavy applications, if you see anomalies in TTCOB, the problem can be resolved by increasing the number of cache pods. For more info, see "Troubleshooting Cloud Native Compiler ".
Cloud Native Compiler 1.5.0
Release Date: October 31, 2022
Cloud Native Compiler 1.4.0
Release Date: July 8, 2022
Cloud Native Compiler 1.3.0
Release Date: May 9, 2022
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
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.