Re: patch for new feature: Buffer Cache Hibernation

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: Mitsuru IWASAKI <iwasaki(at)jp(dot)freebsd(dot)org>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: patch for new feature: Buffer Cache Hibernation
Date: 2011-05-04 16:55:39
Message-ID: BANLkTinbVQ4er5XE33_EmUyPYWDqhoep2Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, May 4, 2011 at 7:10 AM, Mitsuru IWASAKI <iwasaki(at)jp(dot)freebsd(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2011-05-04 16:58:13 VARIANT / ANYTYPE datatype
Previous Message Greg Smith 2011-05-04 16:46:36 Re: patch for new feature: Buffer Cache Hibernation