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

pageserver: relv2 test timeout on arm64 / further optimize read latency #11067

Open
skyzh opened this issue Mar 3, 2025 · 1 comment
Open
Assignees
Labels
t/bug Issue Type: Bug

Comments

@skyzh
Copy link
Member

skyzh commented Mar 3, 2025

The test case might take 2m-5m, maybe there's something wrong with the implementation, or the CI machine gets overloaded during some specific time of the day.

@skyzh skyzh added the t/bug Issue Type: Bug label Mar 3, 2025
@skyzh skyzh self-assigned this Mar 3, 2025
@skyzh
Copy link
Member Author

skyzh commented Mar 3, 2025

Looking at the trace on my laptop, we spend a lot of time on I/O for the create relation operations:

Image

That's expected: every time we want to create a relation, we will need to issue an I/O to the disk to check if a key (relation) exists or not. And I don't think there's any easy way to optimize it.

Ideas:

  • Bloom filter for delta layers so that we don't need to issue I/Os.
  • If a user is fully migrated to v2, we can skip the check (Postgres shouldn't give us duplicated keys?)
  • Build a cache for the relation dirs.

Our arm CI machines are bound by I/O. I can observe tests take longer time during our peak hour of development (usually morning eastern US time), which makes tests depending on read/write slower. So I'll leave this issue open and look into ways to further optimize it if necessary.

@skyzh skyzh changed the title pageserver: relv2 test timeout on arm64 pageserver: relv2 test timeout on arm64 / further optimize read latency Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
t/bug Issue Type: Bug
Projects
None yet
Development

No branches or pull requests

1 participant