Re: Improving REINDEX for system indexes (long)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Hiroshi Inoue <inoue(at)tpf(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Improving REINDEX for system indexes (long)
Date: 2003-09-27 22:37:22
Message-ID: 1393.1064702242@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers pgsql-patches

Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Tom, would you summarize what REINDEX currently _doesn't_ do?

As of CVS tip I think the only deficiency is that indexes on the shared
catalogs (pg_database, pg_shadow, pg_group) have to be reindexed in
place, rather than being rebuilt with a new relfilenode as is done for
CLUSTER or TRUNCATE. In-place reindexing isn't crash-safe, since if
you fail you're left with a half-built (effectively corrupt) index.

I don't see any way to avoid that, though, since we cannot change the
relfilenode value for a shared index.

I was toying with the notion of changing btree index build to not write
the metapage until the index is fully built; in this way, at least the
corrupted state of the index would be obvious. (You'd get "not a btree"
failures.)

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2003-09-27 23:51:16 Re: Improving REINDEX for system indexes (long)
Previous Message Bruce Momjian 2003-09-27 22:24:49 pgsql-server/contrib/dbase dbf2pg.c

Browse pgsql-hackers by date

  From Date Subject
Next Message Joshua D. Drake 2003-09-27 22:40:44 Re: pg_dump doesn't dump binary compatible casts
Previous Message Bruce Momjian 2003-09-27 22:22:52 Re: pgsql-server/src/backend catalog/index.c comma ...

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2003-09-27 23:51:16 Re: Improving REINDEX for system indexes (long)
Previous Message Bruce Momjian 2003-09-27 22:22:52 Re: pgsql-server/src/backend catalog/index.c comma ...