-
Notifications
You must be signed in to change notification settings - Fork 463
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
Fix seqscan prefetch in pg17 #9865
Conversation
6879 tests run: 6572 passed, 0 failed, 307 skipped (full report)Flaky tests (2)Postgres 17
Postgres 15
Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
5ecc4b2 at 2024-11-26T08:15:44.358Z :recycle: |
This comment was marked as spam.
This comment was marked as spam.
This addresses the same issue as #9860. I think PR #9860 is a better fix, |
I am not sure that #9860 is better fix. I will try to investigate more why prefetch distance in pg17 is 1, while |
This is the way it's designed to work in upstream too. Our prefetching isn't that different from the upstream prefetching with posix_fadvise, nor the way async I/O will work in the future. So if there's a problem with pinning, we should address that. We set shared_buffers to 16384. I think that leaves enough room for pinning buffers, even with pretty high effective_io_concurrency settings. |
I think this is obsolete once #9860 merges (now only a matter of CI passing) so I'll close this one. |
Problem
See #9860
Neon doesn't have seqscan detection of its own, so stop read_stream from trying to utilize that readahead, and instead make it issue readahead of its own.
Summary of changes
Add loop calling PrefetchBuffer for next
effective_io_concurrency
blocks.