Re: Eliminating VACUUM FULL WAS: remove flatfiles.c - Mailing list pgsql-hackers

From Dimitri Fontaine
Subject Re: Eliminating VACUUM FULL WAS: remove flatfiles.c
Date
Msg-id m2skf2zb0b.fsf@hi-media.com
Whole thread Raw
In response to Re: Eliminating VACUUM FULL WAS: remove flatfiles.c  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: Eliminating VACUUM FULL WAS: remove flatfiles.c
Re: Eliminating VACUUM FULL WAS: remove flatfiles.c
List pgsql-hackers
Alvaro Herrera <alvherre@commandprompt.com> writes:
> Dimitri Fontaine escribió:
>> Why can't MVCC apply here? You'd have two versions of the pg_class entry
>> that just has been CLUSTERed, and you keep the old relfilenode arround
>> too. MVCC applies, and you teach vacuum to clean out the old file when
>> cleaning out the no more visible tuple.
>
> It just doesn't work.  pg_class (and various other rels) are special
> because they are needed to bootstrap the catalog system.  See
> RelationCacheInitializePhase3.  It wouldn't be possible to figure out
> what's pg_class relfilenode until you have read it from pg_class, which
> is precisely what we're trying to do.

Well at bootstrap time I guess noone is able to disturb the system by
placing a concurrent CLUSTER pg_class; call. Once started, do those rels
still need to have a special behavior?

I guess I'm being dense, will now let people in the know find a solution...
--
dim


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Eliminating VACUUM FULL WAS: remove flatfiles.c
Next
From: Alvaro Herrera
Date:
Subject: Re: Eliminating VACUUM FULL WAS: remove flatfiles.c