Re: Loaded footgun open_datasync on Windows

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Loaded footgun open_datasync on Windows
Дата
Msg-id CAA4eK1LmCYBLzjnUctkxm4pwJ-v9NiSJSF3SivW78=ytiSx-zA@mail.gmail.com
обсуждение исходный текст
Ответ на Loaded footgun open_datasync on Windows  (Laurenz Albe <laurenz.albe@cybertec.at>)
Ответы Re: Loaded footgun open_datasync on Windows  (Laurenz Albe <laurenz.albe@cybertec.at>)
Re: Loaded footgun open_datasync on Windows  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-hackers
On Fri, Jun 1, 2018 at 3:13 PM, Laurenz Albe <laurenz.albe@cybertec.at> wrote:
I recently read our documentation about reliability on Windows:

> On Windows, if wal_sync_method is open_datasync (the default), write caching can
> be disabled by unchecking
> My Computer\Open\disk drive\Properties\Hardware\Properties\Policies\Enable write caching
> on the disk. Alternatively, set wal_sync_method to fsync or fsync_writethrough,
> which prevent write caching.

It seems dangerous to me to initialize "wal_sync_method" to a method that is unsafe
by default.  Admittedly I am not a Windows man, but the fact that this has eluded me
up to now leads me to believe that other people running PostgreSQL on Windows might
also have missed that important piece of advice and are consequently running with
an unsafe setup.

Wouldn't it be smarter to set a different default value on Windows, like we do on
Linux (for other reasons)?


One thing to note is that it seems that in code we use FILE_FLAG_WRITE_THROUGH for open_datasync which according to MSDN [1] will bypass any intermediate cache .  See pgwin32_open.  Have you experimented to set any other option as we have a comment in code which say Win32 only has O_DSYNC?


-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

В списке pgsql-hackers по дате отправления:

Предыдущее
От: James Coleman
Дата:
Сообщение: Re: FW: Possible optimisation: push down SORT and LIMIT nodes
Следующее
От: Dmitry Dolgov
Дата:
Сообщение: Re: why partition pruning doesn't work?