Greg Stark wrote:
Florian G. Pflug wrote:
The same holds true for index scans, though. Maybe we can find a
solution that benefits both cases - something along the line of a
bgreader process
I posted a patch to do readahead for bitmap index scans using
posix_fadvise. Experiments showed it works great on raid arrays on
Linux. Solaris will need to use libaio though which I haven't tried
yet.
Cool! I'd like to try it out - is that patch available in the pg-patches
archives?
Doing it for normal index scans is much much harder. You can
readahead a single page by using the next pointer if it looks like
you'll need it. But I don't see a convenient way to get more than
that.
I was thinking that after reading a page from the index, the backend
could post a list of heap pages referenced from that index page to the
shmem. A background process would repeatedly scan that list, and load
those pages into the buffer cache.
regards, Florian Pflug
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster