> > >           -- start the VACUUM from the first non-filled block
> > > 
> > > So if we do this, we wouldn't need to worry about HOT tuples at
all, 
> > > nor would we need to wait until all transactions are gone.
> > 
> > You need to wait until you are allowed to truncate if you want 
> > concurrency.
> > Or a concurrent scan might miss a row, because the visible tuple got

> > truncated away.
> 
> I was not suggesting that we remove visible rows through truncation.

Sure, unless you suggest to not truncate during this vacuum run ?
But we are talking about vacuum full, so truncation is essential.

It was suggested to do a dummy null update to move live tuples up front.
The old version is still visible for serializable txns.

Andreas

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

                http://www.postgresql.org/about/donate

Reply via email to