Re: Should io_method=worker remain the default? - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Should io_method=worker remain the default?
Date
Msg-id 3oyfupjn74vwwheaccsq4ooqunf77jfax5wsem75r653dqjufo@c4cevawnsahq
Whole thread Raw
In response to Re: Should io_method=worker remain the default?  (Andres Freund <andres@anarazel.de>)
Responses Re: Should io_method=worker remain the default?
Re: Should io_method=worker remain the default?
List pgsql-hackers
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



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Should io_method=worker remain the default?
Next
From: Masahiko Sawada
Date:
Subject: Re: Make COPY format extendable: Extract COPY TO format implementations