Re: [HACKERS] What's left?

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: PostgreSQL Win32 port list <pgsql-hackers-win32(at)postgresql(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Claudio Natoli <claudio(dot)natoli(at)memetrics(dot)com>, "''Merlin Moncure' '" <merlin(dot)moncure(at)rcsonline(dot)com>, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: [HACKERS] What's left?
Date: 2004-01-27 04:01:43
Message-ID: 200401270401.i0R41h325617@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-hackers-win32 pgsql-patches

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > > In this way, no one ever has the rename file open while we are holding
> > > the locks, and we can loop without holding an exclusive lock on
> > > pg_shadow, and file writes remain in order.
> >
> > You're doing this where exactly, and are certain that you are holding no
> > locks why exactly? And if you aren't holding a lock, what prevents
> > concurrency bugs?
>
> Oh, for concurrency bugs, you make realfile.new while holding the
> exclusive lock, so someone could come in later and replace realfile.new
> while I am in the rename loop, but then I just install theirs instead.
>
> I could install someone who has just done the rename to realfile.new but
> not tried the rename from realfile.new to realfile, but that seems OK.
> They will just fine the file missing and fail on the rename, which is
> OK.

OK, here is a patch that I think handles rename. It does the rename to
a secondary file while holding the lock, then releases the lock and does
a rename to the active file. I enabled this for Win32 and Cygwin, which
has the same file system behavior.

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

Attachment Content-Type Size
unknown_filename text/plain 7.0 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ezra Epstein 2004-01-27 06:00:17 Re: Extending SET SESSION AUTHORIZATION
Previous Message Tom Lane 2004-01-27 03:56:24 Re: Extending SET SESSION AUTHORIZATION

Browse pgsql-hackers-win32 by date

  From Date Subject
Next Message Merlin Moncure 2004-01-27 20:51:40 pg_config.h on interix
Previous Message Bruce Momjian 2004-01-27 01:53:02 Re: What's left?

Browse pgsql-patches by date

  From Date Subject
Next Message Brian Moore 2004-01-27 04:51:20 support for printing/exporting xml
Previous Message Bruce Momjian 2004-01-27 01:53:02 Re: What's left?