Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[improve][ci] Switch to Java 21 as default JVM version for CI #23373

Merged
merged 1 commit into from
Sep 30, 2024

Conversation

lhotari
Copy link
Member

@lhotari lhotari commented Sep 29, 2024

Motivation

Java 21 has been switched in the Docker image in 3.3.0 with "PIP-324: Alpine image (#22054)":
https://github.com/apache/pulsar/blob/branch-3.3/docker/pulsar/Dockerfile#L61

Pulsar CI should also run on Java 21 by default.

Modifications

  • Use Java 21 by default in CI
  • Run a scheduled build on Java 17 with docker image using Java 17
  • Add -XX:+ZGenerational to PULSAR_GC parameters by default when running on Java 21+
    • We don't yet have benchmarking results, but since deployments explicitly set PULSAR_GC, this change won't get used unless users update their deployment PULSAR_GC to include -XX:+ZGenerational.
  • Cleanup remaining Ubuntu related properties from the Maven build.

Additional Context

Netflix Engineering has reported in a blog post that ZGenerational brings significant improvements for their use cases (not related to Pulsar):

Even after we saw very promising results in our evaluation, we expected the adoption of ZGC to be a trade off: a little less application throughput, due to store and load barriers, work performed in thread local handshakes, and the GC competing with the application for resources. We considered that an acceptable trade off, as avoiding pauses provided benefits that would outweigh that overhead.

In fact, we’ve found for our services and architecture that there is no such trade off. For a given CPU utilization target, ZGC improves both average and P99 latencies with equal or better CPU utilization when compared to G1.

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

@lhotari lhotari added this to the 4.0.0 milestone Sep 29, 2024
@lhotari lhotari self-assigned this Sep 29, 2024
@github-actions github-actions bot added the doc-not-needed Your PR changes do not impact docs label Sep 29, 2024
@lhotari lhotari force-pushed the lh-java-21-runtime-default branch from d6f5ad1 to e3d756f Compare September 29, 2024 18:46
@lhotari lhotari force-pushed the lh-java-21-runtime-default branch from e3d756f to aff2d69 Compare September 29, 2024 18:48
@lhotari lhotari changed the title [improve][ci] Switch to Java 21 for default JVM version for CI [improve][ci] Switch to Java 21 as default JVM version for CI Sep 29, 2024
@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 74.50%. Comparing base (bbc6224) to head (aff2d69).
Report is 612 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##             master   #23373      +/-   ##
============================================
+ Coverage     73.57%   74.50%   +0.92%     
- Complexity    32624    34463    +1839     
============================================
  Files          1877     1934      +57     
  Lines        139502   145132    +5630     
  Branches      15299    15870     +571     
============================================
+ Hits         102638   108124    +5486     
+ Misses        28908    28712     -196     
- Partials       7956     8296     +340     
Flag Coverage Δ
inttests 27.75% <ø> (+3.17%) ⬆️
systests 24.50% <ø> (+0.18%) ⬆️
unittests 73.86% <ø> (+1.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

see 603 files with indirect coverage changes

pom.xml Show resolved Hide resolved
conf/bkenv.sh Show resolved Hide resolved
@lhotari lhotari merged commit b242850 into apache:master Sep 30, 2024
53 of 54 checks passed
lhotari added a commit that referenced this pull request Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants