Tom Lane wrote:
> Alvaro Herrera <[EMAIL PROTECTED]> writes:
> > Do we need to fsync the directory itself?  My fsync(2) manpage says
> 
> >        Calling  fsync()  does  not  necessarily ensure that the entry in 
> > the directory
> >        containing the file has also reached disk.  For that an explicit 
> > fsync()  on  a
> >        file descriptor for the directory is also needed.
> 
> Hmm ... I see that in the Linux manpage, but not on Darwin, HPUX, or in
> the Single Unix Spec.  I'm inclined to argue that we've always expected
> the filesystem to take care of its own metadata, and we've never seen
> any indication that that's unsafe.  We don't try to "fsync the
> directory" after a normal table create for instance.

I dimly recall the Postfix guys got burned by this some time ago (mails
got lost after a crash because they didn't fsync the directory on which
they had just created the files before acknowledging the email delivery
to the remote server).  I guess this is the reason we require a
filesystem that journals metadata.

http://osdir.com/ml/file-systems.reiserfs.general/2003-09/msg00120.html

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to