Re: [PATCH] Atomic pgrename on Windows

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [PATCH] Atomic pgrename on Windows
Date: 2017-11-28 00:47:45
Message-ID: CAB7nPqQB-BS_QQ7aJW9sp96yrRQ+4_iRBHgUeZhLU63O1xWmKw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Nov 27, 2017 at 3:28 PM, Alexander Korotkov
<a(dot)korotkov(at)postgrespro(dot)ru> wrote:
> Attached patch atomic-pgrename-windows-1.patch fixes this problem. It
> appears to be possible to atomically replace file on Windows – ReplaceFile()
> does that. ReplaceFiles() requires target file to exist, this is why we
> still need to call MoveFileEx() when it doesn't exist.

Do you think that it could be safer to unlink the target file first
with pgunlink()? This way you make sure that the target file is
removed and not locked. This change makes me worrying about the
introduction of more race conditions.

> This patch is based on work of Victor Spirin who was asked by Postgres Pro
> to research this problem.

Victor has no community account so his name cannot be registered as a
co-author of the patch. I have added your name though.
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2017-11-28 00:48:57 Re: [HACKERS] Timeline ID in backup_label file
Previous Message Robert Haas 2017-11-28 00:47:06 Re: [HACKERS] Transactions involving multiple postgres foreign servers