Re: macOS prefetching support

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-08-14T14:39:31Z
Lists: pgsql-hackers
On 14.08.24 14:36, Thomas Munro wrote:
> On Wed, Aug 14, 2024 at 7:04 PM Peter Eisentraut <peter@eisentraut.org> wrote:
>> Attached is a patch to implement this.  It seems to work, but of course
>> it's kind of hard to tell whether it actually does anything useful.
> 
> Header order problem: pg_config_os.h defines __darwin__, but
> pg_config_manual.h is included first, and tests __darwin__.  I hacked
> my way around that, and then made a table of 40,000,000 integers in a
> 2GB buffer pool.  I used "select count(pg_buffercache_evict(buffered))
> from pg_buffer_cache", and "sudo purge", to clear the two layers of
> cache for each test, and then measured:
> 
> maintenance_io_concurrency=0,  ANALYZE: 2311ms
> maintenance_io_concurrency=10, ANALYZE:  652ms
> maintenance_io_concurrency=25, ANALYZE:  389ms
> 
> It works!

Cool!  I'll work on a more polished patch.




Commits

  1. Standardize "read-ahead advice" terminology.

  2. Fixup for prefetching support on macOS

  3. Add prefetching support on macOS