Re: Disk Utilization Increases And Time for Vacuum Increases. - Mailing list pgsql-admin

From Bruce Momjian
Subject Re: Disk Utilization Increases And Time for Vacuum Increases.
Date
Msg-id 200308300107.h7U17JO05341@candle.pha.pa.us
Whole thread Raw
In response to Re: Disk Utilization Increases And Time for Vacuum Increases.  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Disk Utilization Increases And Time for Vacuum Increases.
List pgsql-admin
Bruce Momjian wrote:
> > > AFAIK, VACUUM doesn't reclaim space taken up by indexes. In fact, the more
> > > deletes you do, the larger the index space gets, and the *slower* the index
> > > performs. A periodic REINDEX cleans up a lot of problems.
> >
> > Note that in 7.4 the fix for this is in, so if you have a chance to test
> > it out with your indexes and their growth problem please test it to see if
> > it works right.
> >
> > I haven't tested 7.4 beta1 yet very hard, just on my workstation, with
> > relatively low level stuff.
>
> I am not sure we have completely dealt with index growth in 7.4.  What
> we have new in 7.4 is the ability for non-FULL VACUUM to collect info on
> free index pages and reuse them.
>
> However, VACUUM FULL does not shrink the index table unless those pages
> are the last pages of the file.  (Could it shift free pages to the end
> and then truncate index?)  Also, does VACUUM FULL on an index put the
> empty index pages in the FSM map?  It doesn't do that for heap pages
> because there are none after vacuum, but there might be free index pages
> that we should record.

I haven't seen anyone comment on this.  I think we need to address this
for 7.4.  (Collecting index free space in FSM is new in 7.4.)  I am
concerned that people who are only running VACUUM FULL at night will
have problems with index growth.  Also, why can't we move totally-empty
index pages to the end and truncate the file?

> Interesting I found a reference of doing an auto-reindex as part of
> VACUUM FULL:
>
>     #ifdef NOT_USED
>
>         /*
>          * reindex in VACUUM is dangerous under WAL. ifdef out until it
>          * becomes safe.
>          */
>         if (reindex)
>         {
>             vac_close_indexes(nindexes, Irel);
>             Irel = (Relation *) NULL;
>             activate_indexes_of_a_table(onerel, false);
>         }
>     #endif   /* NOT_USED */

Will we ever reindex as part of VACUUM FULL?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-admin by date:

Previous
From: Tom Lane
Date:
Subject: Re: Define function with no return value?
Next
From: Bruce Momjian
Date:
Subject: Re: logfile problem?