Re: avoid multiple hard links to same WAL file after a crash
От | Justin Pryzby |
---|---|
Тема | Re: avoid multiple hard links to same WAL file after a crash |
Дата | |
Msg-id | 20220409011037.GN24419@telsasoft.com обсуждение исходный текст |
Ответ на | Re: avoid multiple hard links to same WAL file after a crash (Robert Haas <robertmhaas@gmail.com>) |
Список | pgsql-hackers |
On Fri, Apr 08, 2022 at 09:00:36PM -0400, Robert Haas wrote: > > I think there might be another problem. The man page for rename() seems to > > indicate that overwriting an existing file also introduces a window where > > the old and new path are hard links to the same file. This isn't a problem > > for the WAL files because we should never be overwriting an existing one, > > but I wonder if it's a problem for other code paths. My guess is that many > > code paths that overwrite an existing file are first writing changes to a > > temporary file before atomically replacing the original. Those paths are > > likely okay, too, as you can usually just discard any existing temporary > > files. > > I wonder if this is really true. I thought rename() was supposed to be atomic. Looks like it's atomic in that it's not like cp + rm, but not atomic the other way you want. | If newpath already exists, it will be atomically replaced, so that there is no point at which another processattempting to access newpath will find it missing. However, there will probably be a window in which | both oldpath and newpath refer to the file being renamed.
В списке pgsql-hackers по дате отправления: