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

test_runner/performance: add logical message ingest benchmark #9749

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

erikgrinaker
Copy link
Contributor

@erikgrinaker erikgrinaker commented Nov 13, 2024

Adds a benchmark for logical message WAL ingestion throughput end-to-end. Logical messages are essentially noops, and thus ignored by the Pageserver.

Example results from my MacBook, with fsync enabled:

postgres_ingest: 14.445 s
safekeeper_ingest: 29.948 s
pageserver_ingest: 30.013 s
pageserver_recover_ingest: 8.633 s
wal_written: 10,340 MB
message_count: 1310720 messages
postgres_throughput: 715 MB/s
safekeeper_throughput: 345 MB/s
pageserver_throughput: 344 MB/s
pageserver_recover_throughput: 1197 MB/s

See #9642 (comment) for running analysis.

Touches #9642.

@erikgrinaker erikgrinaker requested review from a team and jcsp and removed request for a team November 13, 2024 17:32
@skyzh
Copy link
Member

skyzh commented Nov 13, 2024

actually, pageservers need to ingest some logical messages as part of aux file implementation ->

Some(MetadataRecord::LogicalMessage(rec)) => match rec {
LogicalMessageRecord::Put(put) => {
self.ingest_logical_message_put(put, modification, ctx)
.await?;

but the ones created in the test case will likely be dropped by the pageserver in the end

@skyzh
Copy link
Member

skyzh commented Nov 13, 2024

...aux file logical messages begin with neon-file:

Copy link

github-actions bot commented Nov 13, 2024

5490 tests run: 5247 passed, 0 failed, 243 skipped (full report)


Code coverage* (full report)

  • functions: 31.5% (7928 of 25166 functions)
  • lines: 49.6% (62835 of 126578 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
9a82514 at 2024-11-18T11:48:29.354Z :recycle:

@jcsp
Copy link
Collaborator

jcsp commented Nov 14, 2024

Would you mind noting the results you currently get in the PR description? I find this useful when looking back at history of benchmarks (even though we also have some history in a database)

@erikgrinaker
Copy link
Contributor Author

Would you mind noting the results you currently get in the PR description? I find this useful when looking back at history of benchmarks (even though we also have some history in a database)

Sure, added a result from my MacBook, but I don't think it's particularly useful without more context and representative hardware.

For running analysis, see #9642 (comment).

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.

3 participants