Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.

ci: Design and implement a comprehensive performance regression presubmit/continuous job - #4104

Merged
sakthivelmanii merged 3 commits into
mainfrom
spanner_benchmarking
Oct 4, 2025
Merged

ci: Design and implement a comprehensive performance regression presubmit/continuous job#4104
sakthivelmanii merged 3 commits into
mainfrom
spanner_benchmarking

Conversation

@sakthivelmanii

Copy link
Copy Markdown
Collaborator

This PR introduces a framework for performance regression testing in the Java Spanner client library using JMH (Java Microbenchmark Harness), as outlined in our internal design document for performance regression detection.

Key Changes:

  • JMH Benchmarks: Includes initial JMH benchmark classes targeting key read operations:
    • google.spanner.v1.Spanner/StreamingRead
    • google.spanner.v1.Spanner/ExecuteStreamingSql
  • Mock Server Integration: The benchmarks are designed to run against a local mock gRPC Spanner server to ensure consistent results and isolate client library performance.
  • Runner Script: A shell script is provided to orchestrate the benchmark execution, including setup, warm-up, execution, and result collection. cl/811649110

Purpose:

The main objective is to establish an automated system to detect performance regressions within the client library code before they impact users. This setup helps ensure that changes and new features do not negatively affect the library's latency and throughput.

Internal Reference: b/414281827

@sakthivelmanii
sakthivelmanii requested review from a team October 1, 2025 07:22
@product-auto-label product-auto-label Bot added size: l Pull request size is large. api: spanner Issues related to the googleapis/java-spanner API. labels Oct 1, 2025
@sakthivelmanii
sakthivelmanii force-pushed the spanner_benchmarking branch 5 times, most recently from 84a6780 to a5a229d Compare October 1, 2025 13:02
olavloite
olavloite previously approved these changes Oct 1, 2025
@sakthivelmanii
sakthivelmanii force-pushed the spanner_benchmarking branch 5 times, most recently from 0a75e19 to 545ce98 Compare October 1, 2025 15:10
@sakthivelmanii
sakthivelmanii merged commit 4920266 into main Oct 4, 2025
57 of 61 checks passed
@sakthivelmanii
sakthivelmanii deleted the spanner_benchmarking branch October 4, 2025 10:18
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: spanner Issues related to the googleapis/java-spanner API. size: l Pull request size is large.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants