On 29 November 2017 at 00:16, Alexander Korotkov <a.korot...@postgrespro.ru> wrote:
> > For now, ReplaceFile() function looks like best choice for renaming > statfiles. But it doesn't look good for critical datafiles whose are also > renamed using pgrename, because system can crash between rename of > destination file and rename of source file. Thus, MoveFileEx() seems still > best solution for critical datafiles where safety is more important than > concurrency. After reading provided links, I'm very suspicious about its > safety too. But it's seems like best available solution and it have > already passed some test of time... > Yeah. Or alternately, we might need to extend WAL to include any temp file names, etc, needed to allow us to recover from an interrupted operation during redo. Frankly that may be the safest option; on Windows presume that there is no atomic rename we can trust for critical files, and do it in multiple steps. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services