[Sheepdog] [PATCH v4 6/6] remove oids from object list cache when deleting a vdi
levin li
levin108 at gmail.com
Fri May 4 04:26:36 CEST 2012
On 05/04/2012 03:59 AM, MORITA Kazutaka wrote:
> At Thu, 3 May 2012 18:25:49 +0800,
> levin li wrote:
>> Cluster recovery may cause objects migrated from one node
>> to another, but the object list cache doesn't change, when
>> deleting an object we can not find the right node in whose
>> cache the id stays, so we need to notify the deletion list
>> to all the node to make them delete the specified object id
>> from object list cache.
>>
>> Signed-off-by: levin li<xingke.lwp at taobao.com>
>> ---
>> include/sheep.h | 1 +
>> sheep/object_list_cache.c | 17 ++++++++++++++
>> sheep/ops.c | 17 ++++++++++++++
>> sheep/sheep_priv.h | 1 +
>> sheep/vdi.c | 57 ++++++++++++++++++++++++++++++++++++++++++---
>> 5 files changed, 90 insertions(+), 3 deletions(-)
> I don't like the idea to call process_main() in worker threads since
> we shouldn't make the current thread model more complicated. In
> addition, it is not good to take a long time in the cluster operations
> even if it is in the worker threads because it blocks the succeeding
> events (e.g. vdi creation) for a long time.
>
> I guess it is better to create another work queue, and call
> queue_work() in process_main() of SD_OP_NOTIFY_VDI_DEL like
> start_deletion(). I wonder there would be other simpler and different
> approaches, though.
>
> Thanks,
>
> Kazutaka
Creating a work queue seems a good idea, or maybe we can reuse
the current deletion_queue, I'd try this, since it's more
acceptable than change the thread model.
thanks,
levin
More information about the sheepdog
mailing list