[Sheepdog] [PATCH] sheep: unify create_and_write logic for cow and regular object

Liu Yuan namei.unix at gmail.com
Wed Nov 16 09:24:18 CET 2011


On 11/16/2011 04:18 PM, Christoph Hellwig wrote:

> On Wed, Nov 16, 2011 at 11:12:48AM +0800, Liu Yuan wrote:
>> On 11/15/2011 04:21 PM, Christoph Hellwig wrote:
>>
>>> On Tue, Nov 15, 2011 at 04:18:52PM +0800, Liu Yuan wrote:
>>>> Umm, seems useless, I just squeeze it to the code path. any noticeable
>>>> performance penalty?
>>>
>>> With the current O_SYNC I/O model it at least means an additional log
>>> force, which on disks will be very noticeable.  So unless you really
>>> see a difference in I/O patterns don't do it.
>>>
>>
>>
>> After a second thought, if we use DIO later, so this might not stand.
> 
> I can't really parse this sentence, can you explain it in a bit more
> detail?
> 


Sorry for my English. I meant if we later use Direct IO for store object
later, it doesn't necessarily means a force commit.

>> In
>> ext4, fallocate() will modify the metadata and write a journal
>> transaction, but it may not be committed to the disk immediately. 
> 
> I checked the code and ext4 is indeed buggy there - given that fallocate
> doesn't just allocate new blocks but also updates the file size it
> absolutey needs to commit the transaction before retourning to implement
> O_SYNC/O_DSYNC semantics correctly.
> 





More information about the sheepdog mailing list