Re: win32 performance - fsync question

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: win32 performance - fsync question
Дата
Msg-id 8646.1108662724@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: win32 performance - fsync question  ("Magnus Hagander" <mha@sollentuna.net>)
Список pgsql-hackers
"Magnus Hagander" <mha@sollentuna.net> writes:
> This is what we have discovered. AFAIK, all other major databases or
> other similar apps (like exchange or AD) all open files with
> FILE_FLAG_WRITE_THROUGH and do *not* use fsync. It might give noticably
> better performance with an O_DIRECT style WAL logging at least. But I'm
> unsure if the current code for O_DIRECT works on win32 - I think it
> needs some fixing for that. Which might be worth looking at for 8.1.

Doesn't Windows support O_SYNC (or even better O_DSYNC) flag to open()?
That should be the Posixy spelling of FILE_FLAG_WRITE_THROUGH, if the
latter means what I suppose it does.

> Not much to do about the bgwriter, the way it is designed it *has* to
> fsync during checkpoint.

Theoretically at least, the fsync during checkpoints should not be a
performance killer.  The issue that's at hand here is fsyncing the WAL,
and the reason we need that is (a) to be sure a transaction is committed
when we say it is, and (b) to be sure that WAL writes hit disk before
associated data file updates do (it's write AHEAD log remember).  Direct
writes of WAL should be fine.

So: try O_SYNC instead of fsync for WAL, ie, wal_sync_method =
open_sync or open_datasync.
        regards, tom lane


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

Предыдущее
От: "Magnus Hagander"
Дата:
Сообщение: Re: win32 performance - fsync question
Следующее
От: "Magnus Hagander"
Дата:
Сообщение: Re: win32 performance - fsync question