Re: Postgresql backend to perform vacuum automatically

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Zeugswetter Andreas SB SD" <ZeugswetterA(at)spardat(dot)at>
Cc: "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>, "mlw" <markw(at)mohawksoft(dot)com>, "Nicolas Bazin" <nbazin(at)ingenico(dot)com(dot)au>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Postgresql backend to perform vacuum automatically
Date: 2002-03-07 15:01:40
Message-ID: 9864.1015513300@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Zeugswetter Andreas SB SD" <ZeugswetterA(at)spardat(dot)at> writes:
>> Not possible unless you are willing to have SELECTs grab much stronger
>> locks than they do now (viz, the same kind of lock that VACUUM does).

> I am talking about slots, that are marked deleted before oldest tx in progress.
> It should be possible to overwrite those only with the "pin" on the page.

No, it is not.

You can't physically remove a tuple before you've removed all index
entries that point to it. That requires, at minimum, a table lock that
ensures that no new indexes are being created meanwhile. Which is what
VACUUM uses.

There's also a serious question about whether this would really improve
performance. "Retail" deletion of index tuples would be fairly
inefficient over the long run, compared to the bulk deletion technique
used by VACUUM.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 2002-03-07 15:02:52 Re: Bad Build
Previous Message Fernando Nasser 2002-03-07 12:38:26 Small fix for _equalValue()