On Mon, 1 Nov 2004, Oliver Jowett wrote:
Heikki Linnakangas wrote:The Linux fsync man page says:
"It does not necessarily ensure that the entry in the directory containing the file has also reached disk. For that an explicit fsync on the file descriptor of the directory is also needed."
AFAIK, we don't care about it at the moment. The actual behaviour depends on the filesystem, reiserfs and other journaling filesystems probably don't need the explicit fsync on the parent directory, but at least ext2 does.
I've experimented with a user-mode-linux installation, crashing it at specific points. It seems that on ext2, it's possible to get the database in non-consistent state.
Have you experimented with mounting the filesystem with the dirsync option ('-o dirsync') or marking the log directory as synchronous with 'chattr +D'? (no, it's not a real fix, just another data point..)
Quick experiment shows that they seem to fix it as expected.
"chattr +D" might not be such a bad idea. A warning would be nice if you start the postmaster on a filesystem that requires it. Few admins would remember/know about it otherwise.
- Heikki
---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]