RE: Big 7.1 open items

From: "Hiroshi Inoue" <Inoue(at)tpf(dot)co(dot)jp>
To: "Mikheev, Vadim" <vmikheev(at)SECTORBASE(dot)COM>
Cc: "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>, "Peter Eisentraut" <peter_e(at)gmx(dot)net>, "Jan Wieck" <JanWieck(at)Yahoo(dot)com>, "PostgreSQL-development" <pgsql-hackers(at)postgresql(dot)org>, "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>, "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Thomas Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu>
Subject: RE: Big 7.1 open items
Date: 2000-06-22 03:09:15
Message-ID: 000801bfdbf7$3f674200$2801007e@tpf.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> -----Original Message-----
> From: Mikheev, Vadim [mailto:vmikheev(at)SECTORBASE(dot)COM]
>
> > > > > Or - create tmp file and load with new content;
> > > > > log "intent to relink table file";
> > > > > relink table file; log "file is relinked".
> > > >
> > > > It seems to me that whole content of the table should be
> > > > logged before relinking or shrinking.
> > >
> > > Why not just fsync tmp files?
> > >
> >
> > Probably I've misunderstood *relink*.
> > If *relink* different from *rename* ?
>
> I ment something like this - link(table file, tmp2 file);
> fsync(tmp2 file);
> unlink(table file); link(tmp file, table file); fsync(table file);
> unlink(tmp file).

I see,old file would be rolled back from tmp2 file on abort.
This would work on most platforms.
But cygwin port has a flaw that files could not be unlinked
if they are open. So *relink* may fail in some cases(including
rollback cases).

Regards.

Hiroshi Inoue
Inoue(at)tpf(dot)co(dot)jp

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2000-06-22 03:14:50 Re: Big 7.1 open items
Previous Message Tom Lane 2000-06-22 03:03:03 Re: Big 7.1 open items