Re: fsync or fdatasync

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Mats Lofkvist <mal(at)algonet(dot)se>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: fsync or fdatasync
Date: 2002-09-12 16:25:38
Message-ID: 200209121625.g8CGPcf04332@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Mats Lofkvist wrote:
> > Actually, no, we are only O_SYNC'ing the WAL writes and sometimes that
> > is faster because you are not writing then fsyncing, you are just
> > writing. The fdatasync only is better than O_SYNC when you are doing
> > multiple WAL writes before an fdatasync and we normally don't do that.
> >
>
> I may be wrong on this, but my understanding is that the difference
> between fsync() and O_SYNC on the one hand and fdatasync() and O_DSYNC
> on the other hand is that the latter don't have to sync metadata
> (e.g. file access times) which saves a write to the inode that is
> more or less guarantied to require an extra seek.
>
> Iff this is true you never want to use fsync() or O_SYNC when
> fdatasync() and O_DSYNC is available (unless you really need the
> metadata to be synced too).

Yes, I didn't mention O_DSYNC. It is in the cards. If you are
interested, look at the code and how the defaults are chosen.

postgresql.conf say:

#wal_sync_method = fsync # the default varies across platforms:
# # fsync, fdatasync, open_sync, or open_datasync

Which means exactly that, varies based on the platform.

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message info 2002-09-12 17:45:45 -i option
Previous Message Bruce Momjian 2002-09-12 16:07:38 Re: disk spin down