On Fri, Oct 20, 2006 at 09:49:47AM +0100, Heikki Linnakangas wrote:
> Alvaro Herrera wrote:
> >Tom Lane wrote:
> >>"Heikki Linnakangas" <heikki@enterprisedb.com> writes:
> >>>I just noticed that freezing a tuple (in vacuumlazy.c) is not
> >>>WAL-logged.
> >>The theory is that this doesn't matter because the tuple is committed
> >>either way ... it's equivalent to a hint-bit update which we don'ton
> >>WAL-log either.
> >
> >Also it'd be hugely expensive to log each freeze operation. The
> >alternative would be to log a VACUUM FREEZE, but that has the potential
> >to cause enormous recovery runtime.
>
> Freezing isn't very common, and a single WAL record per page would be
> enough. I can write the patch.
>
> It does have the potential to increase recovery times, but I don't think
> we can just cross our fingers and hope that no crash happens after
> freezing some tuples.
If we're worried enough about the recovery time, AFAIK it should be safe
to fire off a background process to freeze the table and let the rest of
recovery proceed. Perhaps it wouldn't be too difficult to have
autovacuum do this, though we'd have to decide what to do if it was
disabled.
--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)