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

Move logic for ingest benchmark from GitHub workflow into python testcase #9762

Merged
merged 33 commits into from
Nov 19, 2024

Conversation

Bodobolero
Copy link
Contributor

@Bodobolero Bodobolero commented Nov 14, 2024

Problem

The first version of the ingest benchmark had some parsing and reporting logic in shell script inside GitHub workflow.
it is better to move that logic into a python testcase so that we can also run it locally.

Summary of changes

  • Create new python testcase

  • invoke pgcopydb inside python test case

  • move the following logic into python testcase

    • determine backpressure
    • invoke pgcopydb and report its progress
    • parse pgcopydb log and extract metrics
    • insert metrics into perf test database
  • add additional column to perf test database that can receive endpoint ID used for pgcopydb run to have it available in grafana dashboard when retrieving other metrics for an endpoint

Example run

https://github.com/neondatabase/neon/actions/runs/11860622170/job/33056264386

@Bodobolero Bodobolero requested a review from a team as a code owner November 14, 2024 16:17
@Bodobolero Bodobolero requested review from knizhnik and bayandin and removed request for knizhnik November 14, 2024 16:17
@Bodobolero Bodobolero marked this pull request as draft November 14, 2024 16:18
@Bodobolero Bodobolero requested review from a team and removed request for a team November 14, 2024 16:25
@Bodobolero Bodobolero marked this pull request as ready for review November 14, 2024 16:26
Copy link

github-actions bot commented Nov 14, 2024

5499 tests run: 5273 passed, 0 failed, 226 skipped (full report)


Flaky tests (1)

Postgres 14

Code coverage* (full report)

  • functions: 31.5% (7934 of 25219 functions)
  • lines: 49.6% (62948 of 126918 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
8dab650 at 2024-11-19T09:50:17.038Z :recycle:

Copy link
Member

@bayandin bayandin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a couple of comments where I spot a different approach with the current setup of performance tests

@Bodobolero Bodobolero requested a review from bayandin November 15, 2024 14:43
Copy link
Member

@bayandin bayandin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!
Added a couple of comments, most of them for consistency with other benchmarks

.github/actions/run-python-test-set/action.yml Outdated Show resolved Hide resolved
scripts/ingest_perf_test_result.py Outdated Show resolved Hide resolved
.github/workflows/ingest_benchmark.yml Outdated Show resolved Hide resolved
test_runner/performance/test_perf_ingest_using_pgcopydb.py Outdated Show resolved Hide resolved
test_runner/performance/test_perf_ingest_using_pgcopydb.py Outdated Show resolved Hide resolved
test_runner/performance/test_perf_ingest_using_pgcopydb.py Outdated Show resolved Hide resolved
@Bodobolero Bodobolero enabled auto-merge (squash) November 19, 2024 09:10
@Bodobolero Bodobolero merged commit 982cb1c into main Nov 19, 2024
77 checks passed
@Bodobolero Bodobolero deleted the bodobolero/ingest_bench_python branch November 19, 2024 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants