[Sheepdog] [PATCH] sheep: disable object cache by default
Liu Yuan
namei.unix at gmail.com
Thu May 10 06:09:36 CEST 2012
On 05/10/2012 10:52 AM, MORITA Kazutaka wrote:
> At Thu, 10 May 2012 07:55:46 +0800,
> Liu Yuan wrote:
>>
>> On 05/10/2012 12:20 AM, MORITA Kazutaka wrote:
>>
>>> At Wed, 09 May 2012 21:40:45 +0800,
>>> Liu Yuan wrote:
>>>>
>>>> If you are really concerned of this misbehavior, I think we try re-visit
>>>> Wuyue's patch.
>>>
>>> I guess we'll have to agree to disagree on what sheepdog write cache
>>> should be. I think it should work in the same way as a block device
>>> cache, but you think we should limit the usage to simplify the code
>>> and explain what's the limitation in the documentation. Wuyue's patch
>>> looks necessary from my point of view, but unnecessary to you. I
>>> don't intend to complain any more because it's you who implements the
>>> current object cache and it should work as you expect. If I need the
>>> write cache which works like a block device one, I should implement it
>>> as another cache feature.
>>>
>>
>>
>> I've had enough. You and Christoph jump out to bash the object cache
>> time and time again, and seems that never try to read the code to see
>> what is the real culprit and simply ignore or misread my argument.
>>
>> You criticize that object can't handle the mixed writethrough &
>> writeback requests, but it actually does. What cause wrong vdi list
>> output is we don't handle vdi opcode correctly, and I already point to a
>
> Yes, so I wrote "Some vdi operations don't care about cached data" in
> the commit log. It's confusing to call requests from
> write_object()/read_object() writethrough, sorry.
>
>> patch and suggest to 're-visit the patch. well, I think I have clearly
>> stated the intention to merge Wujue's patch(can 're-visit' mean another
>
> Is it really okay to you? If yes, I think it's better.
>
Yes, I have talked to Wujue and he will rebase the patch soon.
> What I wanted to say is that I wonder we need to have multiple cache
> features, and, with regard to the object cache, I should respect your
> opinion because you are the author.
>
>> thing?), but 're-visit' makes you complain again that I look like a
>> dictator who never hear your argument.
>>
>> All the way down you and Christoph simply criticize object cache for it
>> can't handle writethrough & writeback requests, which is completely
>> *false* argument. Even if it holds true, I think the best way is to
>> submit a patch to solve the problem and makes it better instead of a
>> simple patch, just to disable it. Yes you can express your dislike about
>
> No, I don't intend that.
>
> The object cache is really useful when:
> - the gateway nodes have much memory
> - the latency between sheep nodes are high, and it's expensive to
> replicate data (e.g. use sheepdog with WAN)
>
Hmm, DIO object cache doesn't need extra client(gateway node) memory,
this should probably be the default option because then it becomes
completely a disk cache that can survive the host crash.
Also I want to mention that, for starting up hundreds of (cloned) Guest
VM concurrently, object cache seems to be a must on a massive nodes
cluster. We also get the benefit that all the cloned VM on the same node
would share large scale of cached objects.
> My suggestion was to disable the object cache by default for now, so I
> wrote "Let's make it default after it becomes stable and mature" in
> the commit log. If Wujue's patch really fixes all, I have no
> objection to making it default.
>
>> object cache like this way, now I am completely fine with whatever you
>> like now, feel free to purge object cache from the source code. please
>> voice it out straight if you think so, I don't like to guess on what
>> 'disables it and write another cache' implies.
>
> I don't intend that I want to disable the object cache and create
> another default one. I just wanted to say that it's good to have
> another cache with different semantics, and it's safe for all users to
> disable any cache by default.
>
>>
>>>>
>>>> Anyway, I think now I am fine with adding a new option to disable object
>>>> cache globally, but I don't agree to disable it as default.
>>>
>>> If I can disable it, it's okay to me. I still think the feature which
>>> doesn't follow the block storage semantics shouldn't be default like
>>> asyncflush, though.
>>
>>
>> isn't asyncflush non-default now? Do I ever complain it is not default?
>> Actually, I guess I also think it is just a interim solution for massive
>> nodes setup. I am surprised you even bring in it as your argument.
>>
>> By writing the email, I come to realize that (I hope it is a false
>> illusion) object cache and Farm doesn't make any sense to you and you
>
> No, it's just I don't have enough time to look into the code (so sorry
> for that). It's really good for users to have various options. My
> opinion is just that the default behavior should be simple, safe, and
> correct as a block device even if it shows poor performance.
>
>> just forbear voicing it out. Now I am really completely fine with object
>> cache code and Farm purged from source, I am also okay to stop the
>> development of sheepfs, which would be likely annoying according to your
>> standard, because it is virtually another page-cache-like memory cache
>> on the client side, eating up gateway node's memory. I am fond of the
>
> I've not looked into the sheepfs code yet, sorry. But I don't intend
> to exclude features which consumes the client-side cache.
>
>> idea of client-side caching, which seems very wrong to you. Anyway, I am
>> not that into writing the features that I am the only one fond of but
>> annoying to others, fair enough.
>
> As I said above, the object cache is useful. I just wanted say that
> it might be better to have another cache feature because which is best
> is up to the user's environment.
>
Okay, let's all calm down and switch to focus of the development of
Sheepdog.
Thanks,
Yuan
More information about the sheepdog
mailing list