Skip to content

When AsyncCacheLoader.asyncLoadAll returns excess keys, wait for all keys to be added to the cache before returning requested keys #2876

When AsyncCacheLoader.asyncLoadAll returns excess keys, wait for all keys to be added to the cache before returning requested keys

When AsyncCacheLoader.asyncLoadAll returns excess keys, wait for all keys to be added to the cache before returning requested keys #2876

Workflow file for this run

name: benchmarks
permissions: read-all
on: [ push, pull_request ]
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
PUBLISH_JDK: 21
jobs:
benchmarks:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 11, 21, 22, GraalVM ]
env:
JAVA_VERSION: ${{ matrix.java }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.adoptium.net:443
api.github.com:443
caffeine.gradle-enterprise.cloud:443
download.java.net:443
download.oracle.com:443
downloads.gradle.org:443
downloads.gradle-dn.com:443
gds.oracle.com:443
github.com:443
jcenter.bintray.com:443
objects.githubusercontent.com:443
plugins.gradle.org:443
plugins-artifacts.gradle.org:443
repo.maven.apache.org:443
repo1.maven.org:443
raw.githubusercontent.com:443
services.gradle.org:443
www.graalvm.org:443
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Compute JMH Benchmark
uses: ./.github/actions/run-gradle
with:
java: ${{ matrix.java }}
token: ${{ secrets.GITHUB_TOKEN }}
arguments: >
caffeine:jmh --no-daemon -q
-PincludePattern=ComputeBenchmark
-PbenchmarkParameters=computeType=Caffeine,Guava,ConcurrentHashMap
- name: Upload Compute JMH Results to Gist
uses: exuanbo/actions-deploy-gist@47697fceaeea2006a90594ee24eb9cd0a1121ef8 # v1.1.4
if: >
github.event_name == 'push'
&& github.event.repository.fork == false
&& endsWith(github.ref, github.event.repository.default_branch)
with:
token: ${{ secrets.GIST_TOKEN }}
gist_description: Compute JMH Results
gist_id: 511298014cc5629cbc5e57f09fd4c430
file_path: ./caffeine/build/reports/jmh/results.json
gist_file_name: compute_results_${{ matrix.java }}.json
- name: Get/Put JMH Benchmark
uses: ./.github/actions/run-gradle
with:
java: ${{ matrix.java }}
token: ${{ secrets.GITHUB_TOKEN }}
arguments: >
caffeine:jmh --no-daemon -q
-PincludePattern=GetPutBenchmark
-PbenchmarkParameters=cacheType=Caffeine,Guava,ConcurrentHashMap
- name: Upload Get/Put JMH Results to Gist
uses: exuanbo/actions-deploy-gist@47697fceaeea2006a90594ee24eb9cd0a1121ef8 # v1.1.4
if: >
github.event_name == 'push'
&& github.event.repository.fork == false
&& endsWith(github.ref, github.event.repository.default_branch)
with:
token: ${{ secrets.GIST_TOKEN }}
gist_description: Get/Put JMH Results
gist_id: b231cf57cf8e144e2247716e777edcf3
file_path: ./caffeine/build/reports/jmh/results.json
gist_file_name: getput_results_${{ matrix.java }}.json
- name: Put/Remove JMH Benchmark
uses: ./.github/actions/run-gradle
with:
java: ${{ matrix.java }}
token: ${{ secrets.GITHUB_TOKEN }}
arguments: >
caffeine:jmh --no-daemon -q
-PincludePattern=PutRemoveBenchmark
-PbenchmarkParameters=cacheType=Caffeine,Guava,ConcurrentHashMap
- name: FrequencySketch JMH Benchmark
uses: ./.github/actions/run-gradle
with:
java: ${{ matrix.java }}
token: ${{ secrets.GITHUB_TOKEN }}
arguments: >
caffeine:jmh --no-daemon -q
-PincludePattern=FrequencySketchBenchmark
-PbenchmarkParameters=tableSize=134217728
- name: TimerWheelBenchmark JMH Benchmark
uses: ./.github/actions/run-gradle
with:
java: ${{ matrix.java }}
token: ${{ secrets.GITHUB_TOKEN }}
arguments: caffeine:jmh --no-daemon -q -PincludePattern=TimerWheelBenchmark
- name: Publish JMH benchmarks
if: >
matrix.java == env.PUBLISH_JDK
&& github.event_name == 'push'
&& endsWith(github.ref, github.event.repository.default_branch)
run: |
{
echo '#### [Compute](https://jmh.morethan.io/?gists=511298014cc5629cbc5e57f09fd4c430)'
echo -n 'This benchmark that evaluates the overhead due to locking when the entry is'
echo -n 'present. The scenarios graphed are all threads retrieving a single entry'
echo -n '("sameKey") and threads retrieving different keys based on a Zipf distribution'
echo -n '("spread").'
echo -e '\n'
echo '#### [Get/Put](https://jmh.morethan.io/?gists=b231cf57cf8e144e2247716e777edcf3)'
echo -n 'A benchmark that evaluates the read/write performance of a cache. The cache is'
echo -n 'pre-populated for a 100% hit rate and a Zipf distribution of keys is used to'
echo -n 'mimic application usage patterns.'
} >> $GITHUB_STEP_SUMMARY