On Jan 28, 2010, at 11:37 AM, "nate" <centos at linuxpowered.net> wrote: > Les Mikesell wrote: > >> I wonder if the generally-horrible handling that linux has always >> done >> for fsync() is the real reason Oracle spun off their own distro? Do >> they get it better? > > Anyone in their right mind with Oracle would be using ASM and direct > I/O so I don't think it was related. > > http://www.oracle.com/technology/pub/articles/smiley_10gdb_install.html#asm > http://www.ixora.com.au/tips/avoid_buffered_io.htm > > "The file system cache should be used to buffer non-Oracle I/O only. > Using it to attempt to enhance the caching of Oracle data just wastes > memory, and lots of it. Oracle can cache its own data much more > effectively than the operating system can. " > > Which leads me back to my original response, forget about file > system cache if you want performance go for application level > caching whether it's DB caching or other caching like memcached > mentioned by someone. > > Oracle did it because they wanted to control the entire stack. It isn't even file system cache that os of concern here, fsync() properly flushes the file systems and buffers out of the kernel. The problem is fsync() doesn't tell the disk drives themselves to flush their buffers. Even directio by itself won't do the trick, the OS needs to make sure the disk drives empties it's write cache and currently barriers are the only way to make sure of that. -Ross