Re: [HACKERS] Index recreation in vacuum

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Dmitry Samersoff <dms(at)wplus(dot)net>
Cc: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>, pgsql-hackers <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] Index recreation in vacuum
Date: 2000-01-18 19:36:37
Message-ID: 200001181936.OAA16687@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

[Charset koi8-r unsupported, filtering to ASCII...]
> Bruce Momjian wrote:
>
> > >
> > > The problem is how to invalidate/validate indexes.
> > > Of cource natural way is to drop/create indexes but the
> > > definition of indexes would be lost in case of abort/crash.
> >
> > My idea would be to create a new index that is a random index name.
> > Then, do rename(), which is an atomic OS operation putting the new index
> > file in place of the old name. Seems that would work well.
>
> Yes, but it can cause disk space problem for very large indices.

Well, one would hope you have enough disk space free for that.

> Moreover, you need firts unlink old index file than do rename(),
> it is not atomic.

rename - change the name of a file

int
rename(const char *from, const char *to);

...
Rename() causes the link named from to be renamed as to. If to exists, it
is first removed. Both from and to must be of the same type (that is,
both directories or both non-directories), and must reside on the same
file system.

>
> May be better way is to create tmp file containing index description,
> undestandable for vacuum.

That would work too. pg_dump call for just the index, and run it though
a pg_exec_desc() call to recreate.

--
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2000-01-18 19:37:31 Re: [PATCHES] docs done Re: [HACKERS] LIBPQ patches ...
Previous Message Dmitry Samersoff 2000-01-18 19:30:34 Re: [HACKERS] Index recreation in vacuum