> > > Tatsuo Ishii <[EMAIL PROTECTED]> writes:
> > > > Probably VACUUM works well for small to medium size tables, but not
> > > > for huge ones. I'm considering about to implement "on the spot
> > > > salvaging dead tuples".
> > > 
> > > That's impossible on its face, except for the special case where the
> > > same transaction inserts and deletes a tuple.  In all other cases, the
> > > transaction deleting a tuple cannot know whether it will commit.
> > 
> > Of course. We need to keep a list of such that tuples until commit or
> > abort.
> 
> what about other transactions, which may have started before current one
> and be still running when current one commites ?

Then dead tuples should be left. Perhaps in this case we could
register them in FSM or whatever for later processing.
--
Tatsuo Ishii

> I once proposed an extra parameter added to VACUUM FULL which determines
> how much free space to leave in each page vacuumed. If there were room
> the new tuple could be placed near the old one in most cases and thus
> avoid lots of disk head movement when updating huge tables in one go.
> 
> ------------
> 
> Hannu Krosing <[EMAIL PROTECTED]>
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
>                http://archives.postgresql.org
> 

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to