Provide multi-block smgrprefetch().
authorThomas Munro <tmunro@postgresql.org>
Sat, 16 Dec 2023 03:14:47 +0000 (16:14 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sat, 16 Dec 2023 04:51:21 +0000 (17:51 +1300)
commitb485ad7f07c80efbfd47329f138f0fe3a5acf013
tree033c507f439b762b4f6ee6db9d034733706fd4c3
parent59bd34c2fa02b005dc33190245b2bffc6a08c0b9
Provide multi-block smgrprefetch().

Previously smgrprefetch() could issue POSIX_FADV_WILLNEED advice for a
single block at a time.  Add an nblocks argument so that we can do the
same for a range of blocks.  This usually produces a single system call,
but might need to loop if it crosses a segment boundary.  Initially it
is only called with nblocks == 1, but proposed patches will make wider
calls.

Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> (earlier version)
Discussion: https://postgr.es/m/CA+hUKGJkOiOCa+mag4BF+zHo7qo=o9CFheB8=g6uT5TUm2gkvA@mail.gmail.com
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/localbuf.c
src/backend/storage/smgr/md.c
src/backend/storage/smgr/smgr.c
src/include/storage/md.h
src/include/storage/smgr.h