Florian G. Pflug wrote:
> 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.

Agreed.  Lots of database do the index/heap readahead via threads --- I
think we will probably use a separate read-ahead process that knows more
about all the concurrent reads and the tablespaces involved.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>        http://momjian.us
  EnterpriseDB                             http://postgres.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your Subscription:
http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-hackers

Reply via email to