On 4/23/2010 11:17 AM, Ray Van Dolson wrote: > On Fri, Apr 23, 2010 at 10:20:01AM +0200, Jure Pečar wrote: >> >>>> Ray Van Dolson wrote: >>>>>> I think what you want is a proper storage array with mirrored write >>>>>> cache. >> >> When ext3 came into widespread use, a popular method to "cache" >> frequent fsyncs was to run it in a full data journaling mode, with >> external journal on a separate disk. This turned all random writes >> to a sequential write, limited to a very small piece of disk and a >> periodical journal flush to the real file system. This worked >> amazingly well for busy mail queues - throughput went up 10x and >> more. People were also reporting improvements in NFS scenarios. Don't >> know how this is relevant today in times of SSD, but it should be >> worth to test it. > > Interesting. As long as the requirements of O_SYNC are met once the > data is written to the journal (I imagine it would be), then I could > definitely see this speeding up NFS... > > On the other hand, if no write confirmation is sent until the data > actually flushes out of the journal and onto disk, then the wins > probably aren't as significant. Do any linux filesystems actually get this right now? In the past, the filesystem cache was somewhat divorced from file writes so fsync() and probably any write with O_SYNC would wait until the entire filesystem cache was flushed to disk, not just the related file buffer. -- Les Mikesell lesmikesell at gmail.com