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