[sheepdog] [PATCH] sheep: add a kill node operation
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Mon Jul 23 06:08:48 CEST 2012
At Fri, 20 Jul 2012 17:12:21 +0000,
Dietmar Maurer wrote:
>
> after some more thinking, this is also wrong. I would be really great to
> have some documentation about that? How does read/write during recovery
> works exactly.
>
> I first though we can simply reject reads. For writes, we can reject them
> until we start object recovery. After that point we cache written data (but
> still reject reads). When we have received the whole object we merge with
> write cache. But that is not the way it works?
Sheepdog has two object ID queues for recovery, rw->oids and
rw->prio_oids. All object IDs accessed from VMs during object
recovery are pushed into a high priority queue (rw->prio_oids). Sheep
will recover objects in rw->prio_oids first, and after rw->prio_oids
becomes empty, sheep will recover objects in the normal priority queue
(rw->oids). That's the reason sheep doesn't block I/Os during object
recovery long time. (Yuan, correct me if I'm wrong.)
I think we cannot delay the recovery of rw->prio_oids but can delay
rw->oids. It will work something like lazy recovery; objects will be
recovered when they are accessed.
Thanks,
Kazutaka
More information about the sheepdog
mailing list