Skip to content

Add benchmark GitHub Action to valkey-glide #20

Description

@jeremyprime

Summary

Add a manually-triggered benchmark GitHub Action to the valkey-glide repo, following the pattern established in spring-data-valkey. This enables on-demand benchmarking for regression detection (A/B comparison of two refs) and single-run profiling (flame graphs) across all languages in that repo.

Current Behavior

No benchmark action exists in valkey-glide. Benchmarks must be run manually outside of CI.

Proposed Behavior

A single workflow_dispatch action parameterized by language, with inputs for:

  • Language (Java, Python, Node.js, Go)
  • Baseline ref (tag or commit ID, defaults to main)
  • Comparison ref (optional, for A/B comparison)
  • Workload profile
  • Server topology (standalone/cluster)

The action clones resp-bench, builds the selected language's GLIDE client from source, starts infrastructure, runs the benchmark, and uploads results (NDJSON metrics, flame graph artifacts).

Implementation Notes

  • Each language has different build prerequisites (JDK+Maven, pip, npm, Go toolchain, composer) so the action will need per-language setup steps
  • The spring-data-valkey orchestrator (benchmark_orchestrator.py) handles NUMA pinning, variance control, async-profiler, S3 upload, and PostgreSQL publishing - reuse/adapt as neeeded
  • Similar actions should be added to the separate client repos (valkey-glide-csharp, valkey-glide-php, valkey-glide-ruby) following the same pattern
  • Depends on resp-bench engine support for each language (Python, Node.js, Go, PHP engines)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions