Re: mount -o async - is it safe?

From: Shane Wright <shane(dot)wright(at)edigitalresearch(dot)com>
To: pgsql-general(at)postgresql(dot)org
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: mount -o async - is it safe?
Date: 2006-01-20 10:06:51
Message-ID: 200601201006.51810.shane.wright@edigitalresearch.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Tom,

> > If we turn sync off, surely PostgreSQL keeps the data consistent, ext3
> > journalling keeps the filesystem clean [assuming other mount options
> > left at defaults], and then everything should be ok with either a server
> > crash, power failure, storage failure, whatever. right?
>
> I checked around with some of Red Hat's kernel folk, and the bottom line
> seems to be that it's OK as long as you trust the hardware:

fabulous, thanks :)

> :> Question is, can fsync(2) be trusted to behave properly, ie, not return
> :> until all writes are down to disk, if the SAN is mounted -o async ?
> :
> : async is the default, which is the whole point of having things like
> : fsync, fdatasync, O_DIRECT, etc. You can trust fsync as far as you can
> : trust the hardware. The call will not return until the SAN says the
> : data has been written.
> :
> : In reality, the SAN is probably buffering these writes (possibly into
> : SRAM or battery-backed RAM), and the disks are probably buffering them
> : again, but you've got redundant power supplies and UPSs, right?

that sounds true (and it has) - but presumably this is the case whether we
mount -o sync or not? I.e. if its going to buffer, then its going to do so
whether its postgres or the kernel sync'ing the writes?

(specifically that the SAN likely buffers anyway - IMO having to trust the
hardware to some degree is a given ;)

Cheers

Shane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andrew - Supernews 2006-01-20 10:52:38 Re: SELECT Rules or stored procedure
Previous Message FERREIRA, William (VALTECH) 2006-01-20 10:03:11 Re: create plperlu langage fails