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
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 |