agora inbox for [email protected]
help / color / mirror / Atom feedFrom: Andres Freund <[email protected]>
Subject: [PATCH v2.15 08/18] aio: Experimental heuristics to increase batching in read_stream.c
Date: Tue, 18 Mar 2025 14:40:06 -0400
Author:
Reviewed-by:
Discussion: https://postgr.es/m/
Backpatch:
---
src/backend/storage/aio/read_stream.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/backend/storage/aio/read_stream.c b/src/backend/storage/aio/read_stream.c
index 36c54fb695b..cec93129f58 100644
--- a/src/backend/storage/aio/read_stream.c
+++ b/src/backend/storage/aio/read_stream.c
@@ -404,6 +404,30 @@ read_stream_start_pending_read(ReadStream *stream)
static void
read_stream_look_ahead(ReadStream *stream)
{
+ /*
+ * Batch-submitting multiple IOs is more efficient than doing so
+ * one-by-one. If we just ramp up to the max, we'll only be allowed to
+ * submit one io_combine_limit sized IO. Defer submitting IO in that case.
+ *
+ * FIXME: This needs better heuristics.
+ */
+#if 1
+ if (!stream->sync_mode && stream->distance > (io_combine_limit * 8))
+ {
+ if (stream->pinned_buffers + stream->pending_read_nblocks > ((stream->distance * 3) / 4))
+ {
+#if 0
+ ereport(LOG,
+ errmsg("reduce reduce reduce: pinned: %d, pending: %d, distance: %d",
+ stream->pinned_buffers,
+ stream->pending_read_nblocks,
+ stream->distance));
+#endif
+ return;
+ }
+ }
+#endif
+
/*
* Allow amortizing the cost of submitting IO over multiple IOs. This
* requires that we don't do any operations that could lead to a deadlock
--
2.48.1.76.g4e746b1a31.dirty
--xevce4sdbnyxplun
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
filename="v2.15-0009-aio-Implement-smgr-md-fd-write-support.patch"
view thread (9+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [PATCH v2.15 08/18] aio: Experimental heuristics to increase batching in read_stream.c
In-Reply-To: <no-message-id-36630@localhost>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox