Re: AW: AW: WAL does not recover gracefully from out-of-dis k-sp ace - Mailing list pgsql-hackers

From Tom Lane
Subject Re: AW: AW: WAL does not recover gracefully from out-of-dis k-sp ace
Date
Msg-id 7342.984160119@sss.pgh.pa.us
Whole thread Raw
In response to AW: AW: WAL does not recover gracefully from out-of-dis k-sp ace  (Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at>)
List pgsql-hackers
Zeugswetter Andreas SB  <ZeugswetterA@wien.spardat.at> writes:
> A short test shows, that opening the file O_SYNC, and thus avoiding fsync()
> would cut the effective time needed to sync write the xlog more than in half.
> Of course we would need to buffer >= 1 xlog page before write (or commit)
> to gain the full advantage.

> prewrite 0 + write and fsync:        60.4 sec
> sparse file + write with O_SYNC:        37.5 sec
> no prewrite + write with O_SYNC:        36.8 sec
> prewrite 0 + write with O_SYNC:        24.0 sec

This seems odd.  As near as I can tell, O_SYNC is simply a command to do
fsync implicitly during each write call.  It cannot save any I/O unless
I'm missing something significant.  Where is the performance difference
coming from?

The reason I'm inclined to question this is that what we want is not an
fsync per write but an fsync per transaction, and we can't easily buffer
all of a transaction's XLOG writes...
        regards, tom lane


pgsql-hackers by date:

Previous
From: Zeugswetter Andreas SB
Date:
Subject: AW: AW: WAL does not recover gracefully from out-of-dis k-sp ace
Next
From: Tom Lane
Date:
Subject: Re: PQfinish(const PGconn *conn) question