Oh, it remembers a long story around ext3/ext4 and write barrier, with a specific problem in Firefox with SQLite.
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man2/fsync.2.html
" For applications that require tighter guarantees about the integrity of their data, Mac OS X provides
the F_FULLFSYNC fcntl. The F_FULLFSYNC fcntl asks the drive to flush all buffered data to permanent
storage. Applications, such as databases, that require a strict ordering of writes should use F_FULLF-
SYNC to ensure that their data is written in the order they expect. Please see fcntl(2) for more
detail."
http://shaver.off.net/diary/2008/05/25/fsyncers-and-curveballs/
"fsync on Mac OS X: Since on Mac OS X the fsync command does not make the guarantee that bytes are written, SQLite sends a F_FULLFSYNC request to the kernel to ensures that the bytes are actually written through to the drive platter."
http://lwn.net/Articles/283161/
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2008-September/001356.html
"
OTP-7471 On Mac OS X, file:sync/1 now guarantees that all filesystem
buffers are written to the disk by using the fcntl() with
F_FULLFSYNC option. Previously, file:sync/1 called fsync(),
which only guaranteed that the data had been transferred to
the disk drive. (Thanks to Jan Lehnardt.)"
http://lists.mindrot.org/pipermail/portawiki-discuss/2005-November/000002.html |