From: Jim C. Nasby <jim@nasby.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp>
Cc: pgsql-hackers@postgresql.org
Subject: Re: Dead Space Map version 2
Date: Tue, 27 Feb 2007 10:58:26 -0600
Message-ID: <20070227165825.GJ29041@nasby.net> (raw)
In-Reply-To: <12631.1172555721@sss.pgh.pa.us>
References: <20070227113655.6381.ITAGAKI.TAKAHIRO@oss.ntt.co.jp>
<20070227051144.GK29041@nasby.net>
<12631.1172555721@sss.pgh.pa.us>
On Tue, Feb 27, 2007 at 12:55:21AM -0500, Tom Lane wrote:
> "Jim C. Nasby" <jim@nasby.net> writes:
> > Yes, DSM would make FSM recovery more important, but I thought it was
> > recoverable now? Or is that only on a clean shutdown?
>
> Currently we throw away FSM during any non-clean restart. This is
> probably overkill but I'm quite unclear what would be a safe
> alternative.
My thought would be to revert to a FSM that has pages marked as free
that no longer are. Could be done by writing the FSM out every time we
add pages to it. After an unclean restart backends would be getting
pages from the FSM that didn't have free space, in which case they'd
need to yank that page out of the FSM and request a new one. Granted,
this means extra IO until the FSM gets back to a realistic state, but I
suspect that's better than bloating tables out until the next vacuum.
And it's ultimately less IO than re-vacuuming every table to rebuild the
FSM.
--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: jim@nasby.net, tgl@sss.pgh.pa.us, itagaki.takahiro@oss.ntt.co.jp, pgsql-hackers@postgresql.org
Subject: Re: Dead Space Map version 2
In-Reply-To: <20070227165825.GJ29041@nasby.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox