Re: win32 performance - fsync question - Mailing list pgsql-hackers

From Oliver Jowett
Subject Re: win32 performance - fsync question
Date
Msg-id 4214FD66.2040307@opencloud.com
Whole thread Raw
In response to Re: win32 performance - fsync question  (Evgeny Rodichev <er@sai.msu.su>)
Responses Re: win32 performance - fsync question  (Greg Stark <gsstark@mit.edu>)
Re: win32 performance - fsync question  (Evgeny Rodichev <er@sai.msu.su>)
List pgsql-hackers
Evgeny Rodichev wrote:

> Write cache is enabled under Linux by default all the time I make deal
> with it (since 1993).
> 
> It doesn't interfere with fsync(), as linux kernel uses cache flush for
> fsync.

The problem is that most IDE drives lie (or perhaps you could say the 
specification is ambiguous) about completion of the cache-flush command 
-- they say "Yeah, I've flushed" when they have not actually written the 
data to the media and have no provision for making sure it will get 
there in the event of power failure.

So Linux is indeed doing a cache flush on fsync, but the hardware is not 
behaving as expected. By turning off the write-cache on the disk via 
hdparm, you manage to get the hardware to behave better. The kernel is 
caching anyway, so the loss of the drive's write cache doesn't make a 
big difference.

There was some work done for better IDE write-barrier support (related 
to TCQ/SATA support?) in the kernel, but I'm not sure how far that has 
progressed.

-O


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: win32 performance - fsync question
Next
From: "Merlin Moncure"
Date:
Subject: Re: win32 performance - fsync question