Benchmark: optimize by parallel builds and caching#76
Open
Conversation
Signed-off-by: Lior Sventitzky <liorsve@amazon.com>
Signed-off-by: Lior Sventitzky <liorsve@amazon.com>
Signed-off-by: Lior Sventitzky <liorsve@amazon.com>
Signed-off-by: Lior Sventitzky <liorsve@amazon.com>
jeremyprime
reviewed
Apr 13, 2026
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y openjdk-21-jdk-headless maven | ||
| sudo apt-get install -y openjdk-21-jdk-headless maven python3-pip \ |
Collaborator
There was a problem hiding this comment.
Note that GLIDE requires JDK 11 (otherwise it will fallback to using Foojay, which is down a lot, causing the benchmark run in the CI to fail). We may want to install JDK 21 and JDK 11 in this step, then in GLIDE-specific steps set JAVA_HOME to use JDK 11. See #75 for an example.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added optimizations for the benchmark workflow.
benchmark.ymlchangesParallel background builds
Replaced 5 sequential steps (
Build SDV,Install glide deps,Build glide,Build resp-bench,Install deps) with a single step that runs all builds concurrently as background processes:pip installBuild caching (keyed by commit ID / version, persists across runs)
sdv-build-{commit})glide-build-{commit})valkey-server-{version})maven-bench-{resp-bench-commit})async-profiler-3.0)Consolidated apt-get
Merged 3 separate
apt-get update + installcalls into a single step that installs all system packages upfront(Java, Maven, pip, sysstat, numactl, gcc, cmake, etc.)
Unified Glide build
Merged duplicate "Build valkey-glide from source (primary/secondary)" steps into a single step with a unified
build_glideflag that handles both cases.Timing Results
Tested on
opt-bench-1-runner-cleanbranch.