[sheepdog] [PATCH] recovery: fix incomplete recovery because of faulty oid scheduling

Liu Yuan namei.unix at gmail.com
Mon Apr 29 14:19:21 CEST 2013


On 04/29/2013 08:07 PM, MORITA Kazutaka wrote:
> The second and later oids may be already scheduled ones.
> prepare_schedule_oid() can re-schedule them and re-order rw->oids
> again unnecessarily.  Anyway, that's not a big problem.
> 

I suspect it would be problem for running many OS on the node. The oids
will be ping-pong scheduled in corner cases and resulting in bad
performance on the recover event. We should have an efficient data
structure for prio-oid, like red-black tree and make prio-oids recovery
multi-threaded then performance-wise. Ordinary oids can be placed in a
list that has one thread to recover.

> Now, the current version looks okay to me, but I think the following
> one does the same thing and looks simpler.

Okay, this basically does the same thing, I'll update the patch.

Thanks,
Yuan




More information about the sheepdog mailing list