Re: 2nd Level Buffer Cache

Alvaro Herrera <alvherre@commandprompt.com>

From: Alvaro Herrera <alvherre@commandprompt.com>
To: rsmogura <rsmogura@softperience.eu>
Cc: Kevin Grittner <kevin.grittner@wicourts.gov>, PG Hackers <pgsql-hackers@postgresql.org>
Date: 2011-03-18T17:08:41Z
Lists: pgsql-hackers
Excerpts from rsmogura's message of vie mar 18 11:57:48 -0300 2011:

>  Actually idea of this patch was like this:
>  Some operations requires many buffers, PG uses "clock sweep" to get 
>  next free buffer, so it may overwrite index buffer. From point of view 
>  of good database design We should use indices, so purging out index from 
>  cache will affect performance.

The BufferAccessStrategy stuff was written to solve this problem.

>  As the side effect I saw that this 2nd level keeps pg_* indices in 
>  memory too, so I think to include 3rd level cache for some pg_* tables.

Keep in mind that there's already another layer of caching (see
syscache.c) for system catalogs on top of the buffer cache.

-- 
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support