Re: 2nd Level Buffer Cache

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Jim Nasby <jim@nasby.net>, Jeff Janes <jeff.janes@gmail.com>, Kevin Grittner <Kevin.Grittner@wicourts.gov>, rsmogura <rsmogura@softperience.eu>, PG Hackers <pgsql-hackers@postgresql.org>
Date: 2011-03-24T20:59:10Z
Lists: pgsql-hackers
On Wed, Mar 23, 2011 at 6:12 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> It looks like the only way anything can ever get put on the free list
>> right now is if a relation or database is dropped.  That doesn't seem
>> too good.
>
> Why not?  AIUI the free list is only for buffers that are totally dead,
> ie contain no info that's possibly of interest to anybody.  It is *not*
> meant to substitute for running the clock sweep when you have to discard
> a live buffer.

It seems at least plausible that buffer allocation could be
significantly faster if it need only pop the head of a list, rather
than scanning until it finds a suitable candidate.  Moving as much
buffer allocation work as possible into the background seems like it
ought to be useful.

Granted, I've made no attempt to code or test this.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company