From af6443885e4b004d6e7c5037c97a33baad87eeb8 Mon Sep 17 00:00:00 2001 From: Matthias van de Meent Date: Fri, 22 Nov 2024 19:46:42 +0100 Subject: [PATCH] Disable readstream's reliance on seqscan readahead Neon doesn't have seqscan detection of its own, so disable read_stream from trying to use that readahead. --- src/backend/storage/aio/read_stream.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/storage/aio/read_stream.c b/src/backend/storage/aio/read_stream.c index 9b962c301bf..e96fbe3e5c0 100644 --- a/src/backend/storage/aio/read_stream.c +++ b/src/backend/storage/aio/read_stream.c @@ -224,9 +224,10 @@ read_stream_start_pending_read(ReadStream *stream, bool suppress_advice) * If advice hasn't been suppressed, this system supports it, and this * isn't a strictly sequential pattern, then we'll issue advice. */ + /* NEON: disabled seqscan detection */ if (!suppress_advice && stream->advice_enabled && - stream->pending_read_blocknum != stream->seq_blocknum) + true /* stream->pending_read_blocknum != stream->seq_blocknum */) flags = READ_BUFFERS_ISSUE_ADVICE; else flags = 0; @@ -391,6 +392,12 @@ read_stream_begin_relation(int flags, Oid tablespace_id; SMgrRelation smgr; + /* + * NEON: We don't benefit from the OS readahead that callers with + * READ_STREAM_SEQUENTIAL expect, so we disable that flag. + */ + flags &= ~READ_STREAM_SEQUENTIAL; + smgr = RelationGetSmgr(rel); /*