Windows now has fdatasync()

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Windows now has fdatasync()
Дата
Msg-id CA+hUKGJZJVO=iX+eb-PXi2_XS9ZRqnn_4URh0NUQOwt6-_51xQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Windows now has fdatasync()  (Sascha Kuhl <yogidabanli@gmail.com>)
Re: Windows now has fdatasync()  (Thomas Munro <thomas.munro@gmail.com>)
Re: Windows now has fdatasync()  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-hackers
Hi,

While porting some new IO code to lots of OSes I noticed in passing
that there is now a way to do synchronous fdatasync() on Windows.
This mechanism doesn't have an async variant, which is what I was
actually looking for (which turns out to doable with bleeding edge
IoRings, more on that later), but I figured this might be useful
anyway.  I see that at least one other open source database has
discovered it and seen speedups.  Like some other file API
improvements discussed recently, it's Windows 10+ and NTFS only.  I
tried out a quick POC patch and it runs a bit faster than fsync(), as
expected.  I'm not sure if it's worth bothering with or not given the
other options, but figured it was worth sharing.

While testing that I also couldn't resist adding an extra output line
to pg_test_fsync to run open_datasync in buffered I/O mode, like
PostgreSQL actually does in real life.  I guess I should really change
it to duplicate less code, though...

[1] https://www.postgresql.org/message-id/flat/1527846213.2475.31.camel%40cybertec.at

Вложения

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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Unifying VACUUM VERBOSE and log_autovacuum_min_duration output
Следующее
От: Justin Pryzby
Дата:
Сообщение: pg_upgrade should truncate/remove its logs before running