Re: patch for new feature: Buffer Cache Hibernation - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: patch for new feature: Buffer Cache Hibernation
Date
Msg-id BANLkTinbVQ4er5XE33_EmUyPYWDqhoep2Q@mail.gmail.com
Whole thread Raw
In response to patch for new feature: Buffer Cache Hibernation  (Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>)
Responses Re: patch for new feature: Buffer Cache Hibernation  (Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>)
List pgsql-hackers
On Wed, May 4, 2011 at 7:10 AM, Mitsuru IWASAKI <iwasaki@jp.freebsd.org> wrote:
> Hi,
>
> I am working on new feature `Buffer Cache Hibernation' which enables
> postgres to keep higher cache hit ratio even just started.
>
> Postgres usually starts with ZERO buffer cache.  By saving the buffer
> cache data structure into hibernation files just before shutdown, and
> loading them at startup, postgres can start operations with the saved
> buffer cache as the same condition as just before the last shutdown.
>
> Here is the patch for 9.0.3 (also tested on 8.4.7)
> http://people.freebsd.org/~iwasaki/postgres/buffer-cache-hibernation-postgresql-9.0.3.patch
>
> The patch includes the following.
> - At shutdown, buffer cache data structure (such as BufferDescriptors,
>  BufferBlocks and StrategyControl) is saved into hibernation files.
> - At startup, buffer cache data structure is loaded from hibernation
>  files and buffer lookup hashtable is setup based on buffer descriptors.
> - Above functions are enabled by specifying `enable_buffer_cache_hibernation=on'
>  in postgresql.conf.
>
> Any comments are welcome and I would very much appreciate merging the
> patch in source tree.
>
> Have fun and thanks!

It applies and builds against head with offsets and some fuzz.  It
fails make check, but apparently only because
src/test/regress/expected/rangefuncs.out needs to be updated to
include the new setting.  (Although all the other "enable%" settings
are for the planner, so making a new setting with that prefix that
does something else might be undesirable)

I think that PgFincore (http://pgfoundry.org/projects/pgfincore/)
provides similar functionality.  Are you familiar with that?  If so,
could you contrast your approach with that one?

Cheers,

Jeff


pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: patch for new feature: Buffer Cache Hibernation
Next
From: Alvaro Herrera
Date:
Subject: VARIANT / ANYTYPE datatype