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

Liu Yuan namei.unix at gmail.com
Tue Nov 15 09:18:52 CET 2011


On 11/15/2011 04:02 PM, Christoph Hellwig wrote:

> On Tue, Nov 15, 2011 at 03:47:20PM +0800, Liu Yuan wrote:
>> From: Liu Yuan <tailai.ly at taobao.com>
>>
>> store_create_and_write_obj_cow() and store_create_and_write_obj() share
>> a lot of logic, it is neat to unify them.
> 
> Err, I just split them exactly because they don't share any logic. The
> only think shared are the calls to ob_open and store_write_obj_fd, but
> any actual logic is different.
> 


Umm, Shame on me, I didn't look at the git commit history beforehand.

But for cow object, just have two extra steps: read_copy() and
write_copy(). This two steps are internal object operation for cow.

If store_create_and_write_obj() semantically means to operate on the
higher level objects, that is requested object, whether it be cow object
or non-cow object, I think it is better to handle different type object
internally, not explicitly.

>>  - use fallocate() for cow object creation too.
> 
> Why?  We write the whole object in one go, so this shouldn't make
> a difference.

Umm, seems useless, I just squeeze it to the code path. any noticeable
performance penalty?

Thanks,
Yuan




More information about the sheepdog mailing list