Hi,
On 2025-09-08 16:45:52 -0400, Andres Freund wrote:
> On 2025-09-08 12:08:10 -0700, Jeff Davis wrote:
> > On Mon, 2025-09-08 at 14:39 +1200, Thomas Munro wrote:
> > > Some raw thoughts on this topic, and how we got here: This type of
> > > extreme workload, namely not doing any physical I/O, just copying the
> > > same data from the kernel page cache to the buffer pool over and over
> > > again,
> >
> > Isn't that one of the major selling points of AIO? It does "real
> > readahead" from kernel buffers into PG buffers ahead of the time, so
> > that the backend doesn't have to do the memcpy and checksum
> > calculation.
>
> I don't think accelerating copying from the pagecache into postgres shared
> buffers really is a goal of AIO.
I forgot an addendum: In fact, if there were a sufficiently cheap way to avoid
using AIO when data is in the page cache, I'm fairly sure we'd want to use
that. However, there is not, from what I know (both fincore() and RWF_NOWAIT
are too expensive). The maximum gain from using AIO when the data is already
in the page cache is just not very big, and it can cause slowdowns due to IPC
overhead etc.
Greetings,
Andres Freund