Bret S. Lambert wrote:
On Sat, Feb 06, 2010 at 02:44:32PM +0100, C?dric Villemain wrote:
I am working on pgfincore which allow in some way to prepare buffer cache.
You need pg > 8.4 and linux (probably working with bsd too)
Why do something with a non-portable interface? Most OSes support
coherently mmap(2)'ing disk blocks into memory; in fact, I'm somewhat
taken aback that the postgres buffer cache isn't implemented in that
manner, but I'm willing to give the devs credit for having not done
so for good reasons.
First off, Cedric's work is using a fairly portable interface: mincore
http://www.kernel.org/doc/man-pages/online/pages/man2/mincore.2.html
combined with clever bits of mmap. Two useful introductions to this are
are http://www.usenix.org/events/lisa07/tech/plonka.html and
http://www.kennygorman.com/wordpress/?p=246
As for why not use mmap in the first place, this is a long running
debate. See
http://wiki.postgresql.org/wiki/Todo#Miscellaneous_Performance for a
quick intro to the issues involved. There are portability, database
consistency, and code complexity issues around such a change, and the
practical benefit of the change is not so obvious as to make hurdling
those seem a priority. Plenty of easier changes around with completely
unambiguous benefits to work on instead.
--
Greg Smith 2ndQuadrant Baltimore, MD
PostgreSQL Training, Services and Support
greg@xxxxxxxxxxxxxxx www.2ndQuadrant.com
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general