Thread: Bufer cache replacement LRU algorithm?

Bufer cache replacement LRU algorithm?

From
Mladen Gogala
Date:
Where can I find the documentation describing the buffer replacement
policy? Are there any parameters governing the page replacement policy?

--

Mladen Gogala
Sr. Oracle DBA
1500 Broadway
New York, NY 10036
(212) 329-5251
http://www.vmsinfo.com
The Leader in Integrated Media Intelligence Solutions




Re: Bufer cache replacement LRU algorithm?

From
Kenneth Marshall
Date:
Mladen,

You would need to check the mailing lists. The release notes
have it as being a clock sweep algorithm starting in version
8. Then additional changes were added to eliminate the cache
blowout caused by a sequential scan and by vacuum/autovacuum.
I do not believe that there are any parameters available other
than total size of the pool and whether sequential scans are
synchronized.

Regards,
Ken

On Wed, Nov 03, 2010 at 12:35:33PM -0400, Mladen Gogala wrote:
> Where can I find the documentation describing the buffer replacement
> policy? Are there any parameters governing the page replacement policy?
>
> --
> Mladen Gogala Sr. Oracle DBA
> 1500 Broadway
> New York, NY 10036
> (212) 329-5251
> http://www.vmsinfo.com The Leader in Integrated Media Intelligence
> Solutions
>
>
>
>
> --
> Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance
>

Re: Bufer cache replacement LRU algorithm?

From
"Kevin Grittner"
Date:
Kenneth Marshall <ktm@rice.edu> wrote:
> On Wed, Nov 03, 2010 at 12:35:33PM -0400, Mladen Gogala wrote:
>> Where can I find the documentation describing the buffer
>> replacement policy? Are there any parameters governing the page
>> replacement policy?

> You would need to check the mailing lists. The release notes
> have it as being a clock sweep algorithm starting in version
> 8. Then additional changes were added to eliminate the cache
> blowout caused by a sequential scan and by vacuum/autovacuum.
> I do not believe that there are any parameters available other
> than total size of the pool and whether sequential scans are
> synchronized.

The background writer settings might be considered relevant, too.

Also keep in mind that PostgreSQL goes through the OS cache and
filesystems; the filesystem choice and OS settings will have an
impact on how that level of caching behaves.  Since there is often
much more cache at the OS level than in PostgreSQL shared buffers,
you don't want to overlook that aspect of things.

-Kevin

Re: Bufer cache replacement LRU algorithm?

From
Greg Smith
Date:
Mladen Gogala wrote:
> Where can I find the documentation describing the buffer replacement
> policy? Are there any parameters governing the page replacement policy?

I wrote a pretty detailed description of this in my "Inside the
PostgreSQL Buffer Cache" presentation at
http://projects.2ndquadrant.com/talks and nothing in this specific area
has changed significantly since then.  There aren't any specific
tunables in this area beyond the ones that cover sizing of the buffer
pool and how often checkpoints happen.  There's a TODO item to benchmark
toward whether there's any gain to increasing the maximum usage count an
individual page can accumulate, currently hard coded at 5.  That's the
main thing that could be tunable in this area that currently isn't.

--
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services and Support        www.2ndQuadrant.us
"PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books