On Tue, Jun 29, 2010 at 2:45 PM, Bruce Momjian <bruce@momjian.us> wrote:
> Tom Lane wrote:
>> Bruce Momjian <bruce@momjian.us> writes:
>> >>> I asked on IRC and was told it is true, and looking at the C code it
>> >>> looks true. ?What synchronous_commit = false does is to delay writing
>> >>> the wal buffers to disk and fsyncing them, not just fsync, which is
>> >>> where the commit loss due to db process crash comes from.
>>
>> >> Ah, I see. Thanks.
>>
>> > I am personally surprised it was designed that way; I thought we would
>> > just delay fsync.
>>
>> That would require writing and syncing to be separable actions. If
>> you're using O_SYNC or similar, they aren't.
>
> Ah, very good point. I have added a C comment to clarify why this is
> the current behavior; attached and applied.
>
> --
> Bruce Momjian <bruce@momjian.us> http://momjian.us
> EnterpriseDB http://enterprisedb.com
Though has anybody seen a behaviour where synchronous_commit=off is
slower than synchronous_commit=on ? Again there are two cases here
one with O_* flag and other with f*sync flags. But I had seen that
behavior with PostgreSQL 9.0 beta(2 I think) though havent really
investigated it much yet .. (though now I dont remember which
wal_sync_method flag) . Just curious if anybody has seen that
behavior..
Regards,
Jignesh