Re: WAL and commit_delay - Mailing list pgsql-hackers

From Tom Lane
Subject Re: WAL and commit_delay
Date
Msg-id 4356.982435582@sss.pgh.pa.us
Whole thread Raw
In response to WAL and commit_delay  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: WAL and commit_delay  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: WAL and commit_delay  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: WAL and commit_delay  ("Dominic J. Eidson" <sauron@the-infinite.org>)
List pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> With the delay, it looks like:

> time    backend 1    backend 2
> ----    ---------    ---------
> 0    write()        
> 1    sleep()        write()
> 2    fsync()        sleep()
> 3            fsync()

Actually ... take a close look at the code.  The delay is done in
xact.c between XLogInsert(commitrecord) and XLogFlush().  As near
as I can tell, both the write() and the fsync() will happen in
XLogFlush().  This means the delay is just plain broken: placed
there, it cannot do anything except waste time.

Another thing I am wondering about is why we're not using fdatasync(),
where available, instead of fsync().  The whole point of preallocating
the WAL files is to make fdatasync safe, no?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Microsecond sleeps with select()
Next
From: Tom Lane
Date:
Subject: Re: WAL and commit_delay