[CentOS] OT: Caching synchronous writes

Fri Apr 23 16:51:19 UTC 2010
Les Mikesell <lesmikesell at gmail.com>

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